Ranides Atterwim 13 rokov pred
rodič
commit
64d3f17710

+ 35 - 1
pom.xml

@@ -41,6 +41,30 @@
                     <compilerArgument>-proc:none</compilerArgument>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>cobertura-maven-plugin</artifactId>
+                <version>2.5.2</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.9</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.2.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-sources</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
             <!-- Pamięć dla LFSRTest -->
 <!--            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -55,7 +79,17 @@
             </plugin>-->
         </plugins>
     </build>
-    
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.9</version>
+            </plugin>
+        </plugins>
+    </reporting>
+  
     <dependencies>
         <dependency>
             <groupId>log4j</groupId>

+ 1 - 1
src/main/java/net/ranides/assira/collection/map/VirtualMap.java

@@ -65,7 +65,7 @@ public abstract class VirtualMap<K, V> implements Map<K, V> {
     }
 
     @Override
-    public void putAll(Map<? extends K, ? extends V> m) {
+    public void putAll(Map<? extends K, ? extends V> values) {
         throw new UnsupportedOperationException(message);
     }
 

+ 190 - 0
src/main/java/net/ranides/assira/io/LocalWriter.java

@@ -0,0 +1,190 @@
+/*
+ * @author Ranides Atterwim <ranides@gmail.com>
+ * @copyright Ranides Atterwim
+ * @license WTFPL
+ * @url http://ranides.net/projects/assira
+ */
+package net.ranides.assira.io;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.nio.charset.Charset;
+import net.ranides.assira.text.TextEncoding;
+
+/**
+ * Klasa, która rozwiązuje odwieczny problem: z jakim plikiem jest skojarzony
+ * podany reader.
+ * @author ranides
+ */
+public class LocalWriter extends Writer {
+    
+    public static final LocalWriter NULL_WRITER = toStream(NullOutputStream.INSTANCE);
+    
+    private final File file;
+    private final Writer delegate;
+
+    /**
+     * Tworzy nowy obiekt powiązany z podaną nazwą pliku oraz readerem.
+     * @param file
+     * @param delegate
+     */
+    protected LocalWriter(File file, Writer delegate) {
+        this.file = file;
+        this.delegate = delegate;
+    }
+    
+    /**
+     * Tworzy nowy reader ładujący z podanego pliku tekst w kodowaniu UTF8
+     * @param file
+     * @return
+     * @throws FileNotFoundException
+     */
+    public static LocalWriter toFile(File file) throws FileNotFoundException {
+        return toFile(file, TextEncoding.NIO_UTF8);
+    }
+    
+    /**
+     * Tworzy nowy reader ładujący z podanego pliku tekst w podanym jawnie kodowaniu
+     * o podanym jawnie kodowaniu
+     * @param file
+     * @param charset
+     * @return
+     * @throws FileNotFoundException
+     */
+    public static LocalWriter toFile(File file, Charset charset) throws FileNotFoundException {
+        return new LocalWriter(file, new OutputStreamWriter(new FileOutputStream(file), charset));
+    }
+    
+    /**
+     * Tworzy nowy anonimowy reader zawierający podany tekst.
+     * @param content
+     * @return
+     */
+    public static LocalWriter toText() {
+        return toText(new File("anonymous"));
+    }
+    
+    /**
+     * Tworzy nowy reader skojarzony z podaną nazwą pliku zawierający podany tekst.
+     * @param path
+     * @param content
+     * @return
+     */
+    public static LocalWriter toText(File path) {
+        return new LocalWriter(path, new StringWriter());
+    }
+    
+    /**
+     * Tworzy nowy anonimowy reader czytający tekst w kodowaniu UTF8 z podanego strumienia
+     * @param istream
+     * @return
+     */
+    public static LocalWriter toStream(OutputStream ostream) {
+        return toStream(new File("anonymous"), ostream, TextEncoding.NIO_UTF8);
+    }
+    
+    /**
+     * Tworzy nowy anonimowy reader czytający tekst w podanym jawnie kodowaniu z podanego strumienia
+     * @param istream
+     * @param charset
+     * @return
+     */
+    public static LocalWriter toStream(OutputStream ostream, Charset charset) {
+        return new LocalWriter(new File("anonymous"), new OutputStreamWriter(ostream, charset));
+    }
+    
+    /**
+     * Tworzy nowy reader skojarzony z podaną nazwą pliku, czytający tekst 
+     * w kodowaniu UTF8 z podanego strumienia
+     * @param path
+     * @param istream
+     * @return
+     */
+    public static LocalWriter toStream(File path, OutputStream ostream) {
+        return toStream(path, ostream, TextEncoding.NIO_UTF8);
+    }
+    
+    /**
+     * Tworzy nowy reader skojarzony z podaną nazwą pliku, czytający tekst 
+     * w podanym jawnie kodowaniu z podanego strumienia
+     * @param path
+     * @param istream
+     * @param charset
+     * @return
+     */
+    public static LocalWriter toStream(File path, OutputStream ostream, Charset charset) {
+        return new LocalWriter(path, new OutputStreamWriter(ostream, charset));
+    }
+    
+    public static LocalWriter toNull() {
+        return NULL_WRITER;
+    }
+
+    /**
+     * Zwraca nazwę pliku skojarzonego z readerem. Nie musi być to ścieżka 
+     * reprezentująca fizyczny plik, z którego została załadowana treść.
+     * @return
+     */
+    public File file() {
+        return file;
+    }
+
+    @Override
+    public void write(int c) throws IOException {
+        delegate.write(c);
+    }
+
+    @Override
+    public void write(char[] cbuf) throws IOException {
+        delegate.write(cbuf);
+    }
+
+    @Override
+    public void write(char[] cbuf, int off, int len) throws IOException {
+        delegate.write(cbuf, off, len);
+    }
+
+    @Override
+    public void write(String str) throws IOException {
+        delegate.write(str);
+    }
+
+    @Override
+    public void write(String str, int off, int len) throws IOException {
+        delegate.write(str, off, len);
+    }
+
+    @Override
+    public Writer append(CharSequence csq) throws IOException {
+        return delegate.append(csq);
+    }
+
+    @Override
+    public Writer append(CharSequence csq, int start, int end) throws IOException {
+        return delegate.append(csq, start, end);
+    }
+
+    @Override
+    public Writer append(char c) throws IOException {
+        return delegate.append(c);
+    }
+
+    @Override
+    public void flush() throws IOException {
+        delegate.flush();
+    }
+
+    @Override
+    public void close() throws IOException {
+        delegate.close();
+    }
+    
+    
+    
+}

+ 6 - 1
src/main/java/net/ranides/assira/io/NullOutputStream.java

@@ -13,7 +13,12 @@ import java.io.OutputStream;
  *
  * @author ranides
  */
-public class NullOutputStream extends OutputStream {
+public final class NullOutputStream extends OutputStream {
+    
+    public static final OutputStream INSTANCE = new NullOutputStream();
+
+    private NullOutputStream() {
+    }
     
     @Override
     public void write(int data){

+ 0 - 5
src/main/java/net/ranides/assira/reflection/ReflectUtils.java

@@ -9,12 +9,7 @@ package net.ranides.assira.reflection;
 import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
 import net.ranides.assira.generic.CompareWrapper;
 
 /**

+ 2 - 3
src/main/java/net/ranides/assira/xml/NodeCollection.java

@@ -17,7 +17,6 @@ import java.util.Map.Entry;
 import java.util.Set;
 import net.ranides.assira.collection.list.VirtualList;
 import net.ranides.assira.collection.map.ListableMap;
-import net.ranides.assira.generic.ValueUtils;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -122,8 +121,8 @@ public abstract class NodeCollection implements List<Node> {
                     return keyList.size();
                 }
                 @Override
-                public boolean contains(Object o) {
-                    return containsKey(o);
+                public boolean contains(Object key) {
+                    return containsKey(key);
                 }
             };
             this.entries = new AbstractSet<Entry<String,Node>>() {

+ 1 - 1
src/test/java/net/ranides/assira/reflection/ClassInspectorTest.java

@@ -73,7 +73,7 @@ public class ClassInspectorTest {
         String metaDir = ClassInspector.getLocation(Meta.class);
         String metaFQN = ClassInspector.getFQLocation(Meta.class);
         assertTrue( metaFQN.startsWith(metaDir));
-        assertTrue( metaDir.contains("target/classes/"));
+        assertTrue( metaDir.matches(".+/target/.*classes/.*") );
         assertTrue( metaFQN.contains("net/ranides/assira/annotations/Meta"));
         
         String testDir = ClassInspector.getLocation(ClassInspectorTest.class);