Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
*.iml
.idea
target
/.checkstyle
/.classpath
/.project
/.settings
52 changes: 50 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.epam</groupId>
<artifactId>parso</artifactId>
<version>2.0</version>
<packaging>jar</packaging>
<version>2.1.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>parso</name>
<description>Parso is a lightweight Java library designed to read SAS7BDAT datasets. The Parso interfaces
are analogous to libraries designed to read table-storing files, for example, CSVReader library.
Expand Down Expand Up @@ -89,6 +89,26 @@
</archive>
</configuration>
</plugin>
<!--
OSGi source bundle generation from:
http://rajakannappan.blogspot.com/2010/03/automating-eclipse-source-bundle.html
-->
<!-- Build helper maven plugin sets the parsedVersion.osgiVersion property -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>set-osgi-version</id>
<phase>package</phase>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- source maven plugin creates the source bundle and adds manifest -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
Expand All @@ -102,6 +122,18 @@
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifestEntries>
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${groupId}.${artifactId}.source</Bundle-SymbolicName>
<Bundle-Vendor>${organization.name}</Bundle-Vendor>
<Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
<Eclipse-SourceBundle>${groupId}.${artifactId};version=${parsedVersion.osgiVersion};roots:="."</Eclipse-SourceBundle>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
Expand Down Expand Up @@ -135,6 +167,22 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>com.epam.parso</Export-Package>
<Private-Package>com.epam.parso.impl.*</Private-Package>
<!-- Bundle-Activator>com.epam.parso.impl.Activator</Bundle-Activator-->
<!-- Eclipse-SourceBundle>${project.name};version="${parsedVersion.osgiVersion}";roots:="."</Eclipse-SourceBundle-->
<Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
<Service-Component>OSGi-INF/component.xml</Service-Component>
</instructions>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/epam/parso/CSVDataWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

/**
* Interface for exporting data from sas7bdat file to csv.
* @since 2.1
*/
public interface CSVDataWriter {
/**
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/epam/parso/CSVMetadataWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

/**
* Interface for exporting metadata from sas7bdat file to csv.
* @since 2.1
*/
public interface CSVMetadataWriter {
/**
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/epam/parso/Column.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

/**
* A class to store column metadata.
* @since 2.1
*/
public class Column {
/**
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/epam/parso/SasFileReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

/**
* Main interface for working with library.
* @since 2.1
*/
public interface SasFileReader {
/**
Expand Down
42 changes: 42 additions & 0 deletions src/main/java/com/epam/parso/SasFileReaderFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.epam.parso;

import java.io.InputStream;

/**
* Factory for creating {@link SasFileReader}s using {@link InputStream}s.
*
* @author Gabor Bakos
* @since 2.1
*/
public interface SasFileReaderFactory {
/**
* Creates a new {@link SasFileReader} using {@code stream}.
*
* @param stream
* an input stream which should contain a correct sas7bdat file.
* @return An {@link SasFileReader} instance.
*/
SasFileReader create(InputStream stream);

/**
* Creates a new {@link SasFileReader} using {@code stream}.
*
* @param stream
* an input stream which should contain a correct sas7bdat file.
* @param encoding
* the string containing the encoding to use in strings output
* @return An {@link SasFileReader} instance.
*/
SasFileReader create(InputStream stream, String encoding);

/**
* Creates a new {@link SasFileReader} using {@code stream}.
*
* @param stream
* an input stream which should contain a correct sas7bdat file.
* @param byteOutput
* the flag of data output in binary or string format
* @return An {@link SasFileReader} instance.
*/
SasFileReader create(InputStream stream, Boolean byteOutput);
}
6 changes: 6 additions & 0 deletions src/main/java/com/epam/parso/impl/CharDecompressor.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@ public byte[] decompressRow(int offset, int length, int resultLength, byte[] pag
}
currentByteIndex += 2;
break;
case 0x50:
for (int i = 0; i < endOfFirstByte * 256 + (page[offset + currentByteIndex + 1] & 0xFF) + 17; i++) {
resultByteArray[currentResultArrayIndex++] = 0x40;
}
currentByteIndex++;
break;
case 0x60:
for (int i = 0; i < endOfFirstByte * 256 + (page[offset + currentByteIndex + 1] & 0xFF) + 17; i++) {
resultByteArray[currentResultArrayIndex++] = 0x20;
Expand Down
56 changes: 56 additions & 0 deletions src/main/java/com/epam/parso/impl/SasFileReaderFactoryImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/**
*
*/
package com.epam.parso.impl;

import java.io.InputStream;

import com.epam.parso.SasFileReader;
import com.epam.parso.SasFileReaderFactory;

/**
* @author Gabor Bakos
*
*/
public class SasFileReaderFactoryImpl implements SasFileReaderFactory {

/**
*
*/
public SasFileReaderFactoryImpl() {
// TODO Auto-generated constructor stub
}

/*
* (non-Javadoc)
*
* @see com.epam.parso.SasFileReaderFactory#create(java.io.InputStream)
*/
@Override
public SasFileReader create(final InputStream stream) {
return new SasFileReaderImpl(stream);
}

/*
* (non-Javadoc)
*
* @see com.epam.parso.SasFileReaderFactory#create(java.io.InputStream,
* java.lang.String)
*/
@Override
public SasFileReader create(final InputStream stream, final String encoding) {
return new SasFileReaderImpl(stream, encoding);
}

/*
* (non-Javadoc)
*
* @see com.epam.parso.SasFileReaderFactory#create(java.io.InputStream,
* java.lang.Boolean)
*/
@Override
public SasFileReader create(final InputStream stream, final Boolean byteOutput) {
return new SasFileReaderImpl(stream, byteOutput);
}

}
7 changes: 7 additions & 0 deletions src/main/resources/OSGi-INF/component.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="SasFileReaderFactory">
<implementation class="com.epam.parso.impl.SasFileReaderFactoryImpl"/>
<service>
<provide interface="com.epam.parso.SasFileReaderFactory"/>
</service>
</scr:component>