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. |