[Lutinprocessor-commits] r110 - in trunk/lutinprocessor/src/java/org/codelutin/processor: . filters
Author: tchemit Date: 2008-08-17 21:39:14 +0000 (Sun, 17 Aug 2008) New Revision: 110 Added: trunk/lutinprocessor/src/java/org/codelutin/processor/LicenseProcessor.java trunk/lutinprocessor/src/java/org/codelutin/processor/filters/LicenseFilter.java Log: deplacement des filter et processor pour les licences depuis le plugin maven-license-switcher-plugin Added: trunk/lutinprocessor/src/java/org/codelutin/processor/LicenseProcessor.java =================================================================== --- trunk/lutinprocessor/src/java/org/codelutin/processor/LicenseProcessor.java (rev 0) +++ trunk/lutinprocessor/src/java/org/codelutin/processor/LicenseProcessor.java 2008-08-17 21:39:14 UTC (rev 110) @@ -0,0 +1,28 @@ +package org.codelutin.processor; + +import org.codelutin.processor.filters.LicenseFilter; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +/** @author chemit */ +public class LicenseProcessor extends org.codelutin.processor.Processor { + + protected LicenseFilter licenseFilter; + + public LicenseProcessor(String header) { + licenseFilter = new LicenseFilter(header); + setInputFilter(licenseFilter); + } + + public LicenseFilter getLicenceFilter() { + return licenseFilter; + } + + public void process(File filein, File fileout) throws IOException { + process(new FileReader(filein), new FileWriter(fileout)); + } +} + Added: trunk/lutinprocessor/src/java/org/codelutin/processor/filters/LicenseFilter.java =================================================================== --- trunk/lutinprocessor/src/java/org/codelutin/processor/filters/LicenseFilter.java (rev 0) +++ trunk/lutinprocessor/src/java/org/codelutin/processor/filters/LicenseFilter.java 2008-08-17 21:39:14 UTC (rev 110) @@ -0,0 +1,55 @@ +package org.codelutin.processor.filters; + +/** + * Un filtre pour remplacer la license d'un fichier source java. + * <p/> + * fixme : il faut ne pas autoriser le process de fichier java qui ne sont pas valide selon le header - footer... + * + * @author chemit + */ +public class LicenseFilter extends DefaultFilter { + + protected static final String HEADER = "*" + "#" + "#" + "%"; + protected static final String FOOTER = "#" + "#" + "%" + "*"; + /** + * la licence a insere dans le header du fichier source. Ce header est formatte en commentaire (chaque ligne + * commence par un ' * ', sauf pour la premiere et derniere ligne). + */ + protected String licenseHeader; + + /** flag pour indiquer si la licence a ete trouvee entre le header et le footer */ + protected boolean touched; + + public LicenseFilter(String licenseHeader) { + this.licenseHeader = " " + licenseHeader + " "; + } + + protected String performInFilter(String ch) { + if (touched) { + // on autorise pas deux process de la licence dans un fichier java + throw new IllegalStateException("has find more than once the license processor tags in a file"); + } + touched = true; + return HEADER + licenseHeader + FOOTER; + } + + protected String performOutFilter(String ch) { + return ch; + } + + protected String getHeader() { + return HEADER; + } + + protected String getFooter() { + return FOOTER; + } + + public boolean wasTouched() { + return touched; + } + + public void reset() { + touched = false; + } +}
participants (1)
-
tchemit@users.labs.libre-entreprise.org