Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Archimedes Trajano committed May 30, 2011
0 parents commit 0e1d6a5
Show file tree
Hide file tree
Showing 15 changed files with 603 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/
23 changes: 23 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>commons</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
</projectDescription>
6 changes: 6 additions & 0 deletions .settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Sat May 28 16:31:22 EDT 2011
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
54 changes: 54 additions & 0 deletions .settings/org.eclipse.jdt.ui.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#Sat May 28 17:03:21 EDT 2011
sp_cleanup.add_missing_override_annotations=true
sp_cleanup.convert_to_enhanced_for_loop=true
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
sp_cleanup.remove_unnecessary_nls_tags=true
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
sp_cleanup.make_variable_declarations_final=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
sp_cleanup.always_use_this_for_non_static_method_access=false
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
sp_cleanup.remove_unused_private_methods=true
sp_cleanup.sort_members=true
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
sp_cleanup.remove_trailing_whitespaces=true
sp_cleanup.make_parameters_final=true
sp_cleanup.remove_unused_private_members=false
sp_cleanup.make_private_fields_final=true
sp_cleanup.remove_unused_imports=true
sp_cleanup.always_use_parentheses_in_expressions=false
sp_cleanup.make_local_variable_final=true
sp_cleanup.remove_unnecessary_casts=true
sp_cleanup.use_this_for_non_static_method_access=true
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
sp_cleanup.remove_private_constructors=true
sp_cleanup.remove_trailing_whitespaces_all=true
sp_cleanup.add_missing_deprecated_annotations=true
sp_cleanup.add_missing_annotations=true
sp_cleanup.never_use_parentheses_in_expressions=true
sp_cleanup.organize_imports=true
sp_cleanup.format_source_code_changes_only=false
sp_cleanup.always_use_blocks=true
sp_cleanup.use_blocks=true
sp_cleanup.use_this_for_non_static_field_access=true
sp_cleanup.never_use_blocks=false
sp_cleanup.use_blocks_only_for_return_and_throw=false
sp_cleanup.remove_unused_private_types=true
sp_cleanup.sort_members_all=true
sp_cleanup.add_missing_nls_tags=false
sp_cleanup.always_use_this_for_non_static_field_access=false
eclipse.preferences.version=1
sp_cleanup.add_missing_methods=false
sp_cleanup.make_type_abstract_if_missing_method=false
sp_cleanup.format_source_code=true
sp_cleanup.use_parentheses_in_expressions=true
sp_cleanup.on_save_use_additional_actions=true
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.remove_unused_local_variables=false
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
sp_cleanup.correct_indentation=true
sp_cleanup.remove_unused_private_fields=true
sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
sp_cleanup.add_serial_version_id=false
9 changes: 9 additions & 0 deletions .settings/org.maven.ide.eclipse.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#Sat May 28 16:26:54 EDT 2011
version=1
resolveWorkspaceProjects=true
activeProfiles=
eclipse.preferences.version=1
fullBuildGoals=process-test-resources
resourceFilterGoals=process-resources resources\:testResources
includeModules=false
skipCompilerPlugin=true
31 changes: 31 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.trajano</groupId>
<artifactId>commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Commons</name>
<description>This class provides common utility classes similar to that of Apache Commons, but with the focus on JDK7</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<type>jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package net.trajano.commons.filevisitor;

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;

public class RemoveEmptyFoldersVisitor extends SimpleFileVisitor<Path> {
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
DirectoryStream<Path> ds = Files.newDirectoryStream(dir);
boolean hasFiles = ds.iterator().hasNext();
ds.close();
if (!hasFiles) {
Files.delete(dir);
}
return FileVisitResult.CONTINUE;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package net.trajano.commons.filevisitor;

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public class RemoveFoldersVisitor extends SimpleFileVisitor<Path> {
Path currentDirectory = null;

@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
Files.delete(dir);
return FileVisitResult.CONTINUE;
}
}
66 changes: 66 additions & 0 deletions src/main/java/net/trajano/commons/io/DigestInputStream.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package net.trajano.commons.io;

import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* This wraps an input stream to provide a digest.
*
* @author trajano
*
*/
public class DigestInputStream extends FilterInputStream {
/**
* Message digest.
*/
private final MessageDigest digest;
private byte[] digestValue = null;

public DigestInputStream(final InputStream in, final String algorithm)
throws NoSuchAlgorithmException {
super(in);
digest = MessageDigest.getInstance(algorithm);

}

@Override
public void close() throws IOException {
in.close();
digestValue = digest.digest();
}

/**
* This will return the digest value. This will return <code>null</code> if
* the stream is not closed.
*
* @return
*/
public byte[] digest() {
return digestValue;
}

@Override
public int read() throws IOException {
final int c = in.read();
digest.update((byte) c);
return c;
}

@Override
public int read(final byte[] b) throws IOException {
final int c = in.read(b);
digest.update(b);
return c;
}

@Override
public int read(final byte[] b, final int off, final int len)
throws IOException {
final int c = in.read(b, off, len);
digest.update(b, off, len);
return c;
}
}
62 changes: 62 additions & 0 deletions src/main/java/net/trajano/commons/io/DigestOutputStream.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package net.trajano.commons.io;

import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* This wraps an input stream to provide a digest.
*
* @author trajano
*
*/
public class DigestOutputStream extends FilterOutputStream {
/**
* Message digest.
*/
private final MessageDigest digest;
private byte[] digestValue = null;

public DigestOutputStream(final OutputStream out, final String algorithm)
throws NoSuchAlgorithmException {
super(out);
digest = MessageDigest.getInstance(algorithm);
}

@Override
public void close() throws IOException {
out.close();
digestValue = digest.digest();
}

/**
* This will return the digest value. This will return <code>null</code> if
* the stream is not closed.
*
* @return
*/
public byte[] digest() {
return digestValue;
}

@Override
public void write(final byte[] b) throws IOException {
digest.update(b);
out.write(b);
}

@Override
public void write(final byte[] b, final int off, final int len)
throws IOException {
digest.update(b, off, len);
out.write(b, off, len);
}

@Override
public void write(final int b) throws IOException {
digest.update((byte) b);
out.write(b);
}
}
Loading

0 comments on commit 0e1d6a5

Please sign in to comment.