|
From: <de...@us...> - 2012-06-18 06:30:36
|
Revision: 7346
http://fudaa.svn.sourceforge.net/fudaa/?rev=7346&view=rev
Author: deniger
Date: 2012-06-18 06:30:29 +0000 (Mon, 18 Jun 2012)
Log Message:
-----------
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-sysdoc/
trunk/soft/fudaa-crue/crue-sysdoc/pom.xml
trunk/soft/fudaa-crue/crue-sysdoc/src/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/DocEntry.java
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/ExtensionFileFilter.java
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FileNameComparator.java
trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FolderProcessor.java
trunk/soft/fudaa-crue/crue-sysdoc/src/test/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/sysdoc/
trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/sysdoc/FolderProcessorTest.java
Property changes on: trunk/soft/fudaa-crue/crue-sysdoc
___________________________________________________________________
Added: svn:ignore
+ target
Copied: trunk/soft/fudaa-crue/crue-sysdoc/pom.xml (from rev 7339, trunk/soft/fudaa-crue/crue-server/pom.xml)
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/pom.xml (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/pom.xml 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <parent>
+ <groupId>org.fudaa.soft.fudaa-crue</groupId>
+ <artifactId>fudaa-crue</artifactId>
+ <version>0.54-SNAPSHOT</version>
+ </parent>
+ <artifactId>crue-sysdoc</artifactId>
+ <name>Crue Sysdoc</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <parallel>methods</parallel>
+ <threadCount>5</threadCount>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-antrun-plugin
+ </artifactId>
+ <versionRange>
+ [1.3,)
+ </versionRange>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+<!-- <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>-->
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.fudaa.framework.ctulu</groupId>
+ <artifactId>ctulu-common</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Added: trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/DocEntry.java
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/DocEntry.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/DocEntry.java 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,92 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.fudaa.dodico.crue.sysdoc;
+
+import java.io.File;
+import java.util.*;
+import org.apache.commons.lang.StringUtils;
+
+/**
+ *
+ * @author deniger
+ */
+public class DocEntry {
+
+ private String path;
+ private String title;
+ private File file;
+ private List<DocEntry> children = new ArrayList<DocEntry>();
+
+ public String getPath() {
+ return path;
+ }
+
+ public Map<File, DocEntry> getDocEntryByFile() {
+ Map<File, DocEntry> res = new HashMap<File, DocEntry>();
+ getDocEntryByFile(res);
+ return res;
+ }
+
+ private void getDocEntryByFile(Map<File, DocEntry> in) {
+ in.put(file, this);
+ for (DocEntry docEntry : children) {
+ docEntry.getDocEntryByFile(in);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return print(StringUtils.EMPTY);
+ }
+
+ private String print(String prefix) {
+ StringBuilder builder = new StringBuilder();
+ builder.append(prefix);
+ builder.append(title);
+ builder.append("\t;");
+ builder.append(path);
+ builder.append("\t;");
+ builder.append(file);
+ if (!isLeaf()) {
+ for (DocEntry docEntry : children) {
+ builder.append('\n');
+ builder.append(docEntry.print(prefix + " "));
+ }
+ }
+ return builder.toString();
+ }
+
+ public File getFile() {
+ return file;
+ }
+
+ public void setFile(File file) {
+ this.file = file;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public List<DocEntry> getChildren() {
+ return Collections.unmodifiableList(children);
+ }
+
+ public boolean isLeaf() {
+ return children.isEmpty();
+ }
+
+ void addEntry(DocEntry fileEntry) {
+ children.add(fileEntry);
+ }
+}
Added: trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/ExtensionFileFilter.java
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/ExtensionFileFilter.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/ExtensionFileFilter.java 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,29 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.fudaa.dodico.crue.sysdoc;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ *
+ * @author deniger
+ */
+class ExtensionFileFilter implements FileFilter {
+ private String extension;
+
+ public ExtensionFileFilter(String extension) {
+ this.extension = extension;
+ }
+
+ @Override
+ public boolean accept(File pathname) {
+ if (pathname.isDirectory()) {
+ return true;
+ }
+ return pathname.getName().endsWith(extension);
+ }
+
+}
Added: trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FileNameComparator.java
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FileNameComparator.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FileNameComparator.java 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,20 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.fudaa.dodico.crue.sysdoc;
+
+import java.io.File;
+import java.util.Comparator;
+
+/**
+ *
+ * @author deniger
+ */
+public class FileNameComparator implements Comparator<File> {
+
+ @Override
+ public int compare(File o1, File o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+}
Added: trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FolderProcessor.java
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FolderProcessor.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/src/main/java/org/fudaa/dodico/crue/sysdoc/FolderProcessor.java 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,58 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.fudaa.dodico.crue.sysdoc;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.Arrays;
+import java.util.Comparator;
+import org.apache.commons.lang.StringUtils;
+
+/**
+ *
+ * @author deniger
+ */
+public class FolderProcessor {
+
+ private String extension = ".html";
+ private FileFilter extensionFileFilter;
+ private Comparator<File> fileComparator;
+
+ DocEntry process(File dir) {
+ extensionFileFilter = new ExtensionFileFilter(extension);
+ fileComparator = new FileNameComparator();
+ DocEntry res = new DocEntry();
+ res.setFile(dir);
+ res.setTitle(dir.getName());
+ res.setPath(StringUtils.EMPTY);
+ processFile(res);
+
+
+
+ return res;
+ }
+
+ private void processFile(DocEntry res) {
+ File[] listFiles = res.getFile().listFiles(extensionFileFilter);
+ Arrays.sort(listFiles, fileComparator);
+ String path = res.getPath();
+ for (File file : listFiles) {
+ DocEntry fileEntry = new DocEntry();
+ fileEntry.setFile(file);
+ fileEntry.setTitle(file.getName());
+ if (file.isFile()) {
+ fileEntry.setPath(path + file.getName());
+ } else {
+ fileEntry.setPath(path + file.getName() + "/");
+ //on fait un parcours récursif
+ processFile(fileEntry);
+ }
+ //pour ne pas ajouter les folders vide
+ if (fileEntry.getFile().isFile() || !fileEntry.isLeaf()) {
+ res.addEntry(fileEntry);
+ }
+ }
+ }
+}
Added: trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/sysdoc/FolderProcessorTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/sysdoc/FolderProcessorTest.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-sysdoc/src/test/java/org/fudaa/dodico/crue/sysdoc/FolderProcessorTest.java 2012-06-18 06:30:29 UTC (rev 7346)
@@ -0,0 +1,107 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.fudaa.dodico.crue.sysdoc;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import org.fudaa.ctulu.CtuluLibFile;
+import org.junit.*;
+import static org.junit.Assert.*;
+
+/**
+ *
+ * @author deniger
+ */
+public class FolderProcessorTest {
+
+ public FolderProcessorTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ public static void main(String[] args) {
+ File dir = new File("/home/deniger/temp/sysdoc/");
+ FolderProcessor instance = new FolderProcessor();
+ DocEntry result = instance.process(dir);
+ System.err.println(result);
+ }
+
+ /**
+ * Test of process method, of class FolderProcessor.
+ */
+ @Test
+ public void testProcess() throws IOException {
+ File dir = CtuluLibFile.createTempDir();
+ //on cree les fichier a,z dans le folder
+ File ahtml = new File(dir, "a.html");
+ File zhtml = new File(dir, "z.html");
+ ahtml.createNewFile();
+ zhtml.createNewFile();
+ //sera ignore a cause de l'extension
+ new File(dir, "toIgnore.htm").createNewFile();
+ //le folder b
+ File subFolderB = new File(dir, "b");
+ //contient un sous folder BB
+ File subFolderBB = new File(subFolderB, "bb");
+ subFolderBB.mkdirs();
+ //qui contient un fichier bbHtml
+ File bzHtml = new File(subFolderBB, "z.html");
+ bzHtml.createNewFile();
+ //le folder c
+ File subFolderC = new File(dir, "c");
+ subFolderC.mkdirs();
+ File cHtml = new File(subFolderC, "c.html");
+ cHtml.createNewFile();
+ cHtml.mkdirs();
+ //empty folder
+ File subFolderD = new File(dir, "d");
+ subFolderD.mkdirs();
+ //a.html
+ //+b
+ //++bb
+ //+++z.html
+ //+c
+ //++c.html
+ //d ( vide sera ignore)
+ //z.html
+
+ FolderProcessor processor = new FolderProcessor();
+ DocEntry process = processor.process(dir);
+ assertNotNull(process);
+ assertEquals(dir, process.getFile());
+ final List<DocEntry> children = process.getChildren();
+ assertEquals(4, children.size());
+ assertEquals(ahtml, children.get(0).getFile());
+ assertEquals(ahtml.getName(), children.get(0).getPath());
+ assertEquals(zhtml, children.get(3).getFile());
+ assertEquals(zhtml.getName(), children.get(3).getPath());
+ DocEntry bzEntry = process.getDocEntryByFile().get(bzHtml);
+ assertNotNull(bzEntry);
+ assertEquals(bzHtml.getName(), bzEntry.getTitle());
+ assertEquals(zhtml.getName(), bzEntry.getPath());
+
+
+ CtuluLibFile.deleteDir(dir);
+
+
+
+
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|