Bruno,
I'm afraid that I've made things too confusing with the branch
names. The current 1.2 branch isn't the obvious one - it's actually:
https://svn.apache.org/repos/asf/incubator/adffaces/branches/faces-1_2-061113
Sorry about the confusion... could you merge into that branch? I should
really rename the old faces-1_2 branch to something less tempting.
-- Adam
On 11/27/06, Bruno Aranda <[EMAIL PROTECTED]> wrote:
> Ok, I have just merged the development in that branch with the current
> 12 branch for the plugin. Trinidad seems to build fine for me. It
> shouldn't be affected in any way as the changes are mostly to
> autogenerate the components for MyFaces.
>
> The branch
https://svn.apache.org/repos/asf/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin
> could be removed now and it shouldn't be used for further development.
>
> Cheers!
>
> Bruno
>
> On 27/11/06, Bruno Aranda <[EMAIL PROTECTED]> wrote:
> > Thanks Adam. There is one patch by Andreas Berger that remains to be
> > applied to the branch. After that, hopefully today, I will test that
> > trinidad builds well with the branched version and then I will try to
> > merge it with the current faces 1.2 branch. I agree with you that we
> > have to avoid a huge code divergence but there were a big amount of
> > changes, hence the creation of the branch.
> >
> > Cheers,
> >
> > Bruno
> >
> > On 26/11/06, Adam Winer <[EMAIL PROTECTED]> wrote:
> > > Bruno,
> > >
> > > Any idea how/when we're going to merge these changes back?
> > > (Excellent work, by the way!) I'd really like to keep us all
> > > on one branch of the code, instead of getting some huge
> > > code divergence.
> > >
> > > -- Adam
> > >
> > >
> > >
> > >
> > > On 11/25/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Author: baranda
> > > > Date: Sat Nov 25 09:41:05 2006
> > > > New Revision: 479151
> > > >
> > > > URL: http://svn.apache.org/viewvc?view=rev&rev=479151
> > > > Log:
> > > > Applied ADFFACES-303 patch by Andreas Berger
> > > >
> > > > Modified:
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/GeneratorHelper.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/ComponentGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesComponentTagGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadComponentTagGenerator.java
> > > >
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SourceTemplate.java
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -140,8 +140,8 @@
> > > >
> > > > if (componentFamily == null)
> > > > {
> > > > - getLog().error("Missing <component-family> for \"" +
> > > > - fullClassName + "\"");
> > > > + getLog().warn("Missing <component-family> for \"" +
> > > > + fullClassName + "\", generation of this
Component
> > > > is skipped");
> > > > }
> > > > else
> > > > {
> > > > @@ -212,7 +212,12 @@
> > > >
> > > > generator.writeFacetMethods(out, component);
> > > >
> > > > - generator.writePropertyMethods(out, component);
> > > > + if (template == null)
> > > > + {
> > > > + generator.writePropertyMethods(out, component);
> > > > + } else {
> > > > + generator.writePropertyMethods(out, component,
> > > > template.getIgnoreMethods());
> > > > + }
> > > >
> > > > if (!suppressListenerMethods)
> > > > generator.writeListenerMethods(out, component);
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -1468,99 +1468,102 @@
> > > > }
> > > > }
> > > >
> > > > - class ComponentTagHandlerGenerator
> > > > - {
> > > > - public void generateTagHandler(
> > > > - ComponentBean component)
> > > > - {
> > > > - String fullClassName = component.getTagClass();
> > > > -
> > > > - ComponentTagGenerator generator;
> > > > -
> > > > - if (component.isTrinidadComponent())
> > > > - {
> > > > - generator = new TrinidadComponentTagGenerator(_is12());
> > > > - }
> > > > - else
> > > > - {
> > > > - generator = new MyFacesComponentTagGenerator(_is12());
> > > > - }
> > > > -
> > > > - try
> > > > - {
> > > > - getLog().debug("Generating " + fullClassName);
> > > > -
> > > > - String sourcePath =
Util.convertClassToSourcePath(fullClassName,
> > > > ".java");
> > > > - File targetFile = new File(generatedSourceDirectory,
sourcePath);
> > > > -
> > > > - targetFile.getParentFile().mkdirs();
> > > > - StringWriter sw = new StringWriter();
> > > > - PrettyWriter out = new PrettyWriter(sw);
> > > > -
> > > > - String className = Util.getClassFromFullClass(fullClassName);
> > > > - String packageName =
Util.getPackageFromFullClass(fullClassName);
> > > > - String fullSuperclassName = component.findJspTagSuperclass();
> > > > - if (fullSuperclassName == null)
> > > > - {
> > > > - getLog().error("Missing JSP Tag superclass for component:
> > > > "+component.getComponentClass());
> > > > - return;
> > > > - }
> > > > - String superclassName = Util.getClassFromFullClass
> > > > (fullSuperclassName);
> > > > - if (superclassName.equals(className))
> > > > - superclassName = fullSuperclassName;
> > > > - String componentFullClass = component.getComponentClass();
> > > > - String componentClass = Util.getClassFromFullClass
> > > > (componentFullClass);
> > > > -
> > > > - // header/copyright
> > > > - writePreamble(out);
> > > > -
> > > > - // package
> > > > - out.println("package " + packageName + ";");
> > > > -
> > > > - out.println();
> > > > -
> > > > -
> > > > - generator.writeImports(out, null, packageName,
> > > > fullSuperclassName, superclassName,
> > > > - component);
> > > > -
> > > > - generator.writeClassBegin(out, className, superclassName,
> > > > component, null);
> > > > -
> > > > - int modifiers = component.getTagClassModifiers();
> > > > - generator.writeConstructor(out, component, modifiers);
> > > > -
> > > > -
> > > > - if (!Modifier.isAbstract(modifiers))
> > > > - {
> > > > - generator.writeGetComponentType(out, component);
> > > > - generator.writeGetRendererType(out, component);
> > > > - }
> > > > - generator.writePropertyMembers(out, component);
> > > > - generator.writeSetPropertiesMethod(out, componentClass,
> > > > component);
> > > > - generator.writeReleaseMethod(out, component);
> > > > -
> > > > - generator.writeClassEnd(out);
> > > > - out.close();
> > > > -
> > > > - // delay write in case of error
> > > > - // timestamp should not be updated when an error occurs
> > > > - // delete target file first, because it is readonly
> > > > - targetFile.delete();
> > > > - FileWriter fw = new FileWriter(targetFile);
> > > > - StringBuffer buf = sw.getBuffer();
> > > > - fw.write(buf.toString());
> > > > - fw.close();
> > > > - targetFile.setReadOnly();
> > > > - }
> > > > - catch (Throwable e)
> > > > - {
> > > > - getLog().error("Error generating " + fullClassName, e);
> > > > - }
> > > > - }
> > > > + class ComponentTagHandlerGenerator {
> > > >
> > > > -
> > > > - }
> > > > + private Set initComponentList(ComponentBean component,
> > > > String fullSuperclassName) {
> > > > + Set _componentList = new HashSet();
> > > > + _componentList.add(component);
> > > > + ComponentBean lBean = component;
> > > > + while ((lBean = lBean.resolveSupertype()) !=
null
> > > > && !fullSuperclassName.equals(lBean.getTagClass())) {
> > > > +
getLog().debug(component.getComponentType()+":
> > > > Add additional Tags from: " + lBean.getComponentType());
> > > > + _componentList.add(lBean);
> > > > + }
> > > > + return _componentList;
> > > > + }
> > > > +
> > > > + public void generateTagHandler(ComponentBean component)
{
> > > > + ComponentTagGenerator generator;
> > > > + Set componentList;
> > > > +
> > > > + String fullSuperclassName =
> > > > component.findJspTagSuperclass();
> > > > + if (fullSuperclassName == null) {
> > > > + getLog().warn("Missing JSP Tag
superclass
> > > > for component: " + component.getComponentClass()
> > > > + + ", generation of this
> > > > Tag is skipped");
> > > > + return;
> > > > + }
> > > > + componentList = initComponentList(component,
> > > > fullSuperclassName);
> > > > +
> > > > + String fullClassName = component.getTagClass();
> > > > + try {
> > > > + getLog().debug("Generating " +
> > > > fullClassName);
> > > > +
> > > > + String sourcePath =
> > > > Util.convertClassToSourcePath(fullClassName, ".java");
> > > > + File targetFile = new
> > > > File(generatedSourceDirectory, sourcePath);
> > > > +
> > > > + targetFile.getParentFile().mkdirs();
> > > > + StringWriter sw = new StringWriter();
> > > > + PrettyWriter out = new PrettyWriter(sw);
> > > > +
> > > > + if (component.isTrinidadComponent()) {
> > > > + generator = new
> > > > TrinidadComponentTagGenerator(_is12());
> > > > + } else {
> > > > + generator = new
> > > > MyFacesComponentTagGenerator(_is12());
> > > > + }
> > > > +
> > > > + String className =
> > > > Util.getClassFromFullClass(fullClassName);
> > > > + String packageName =
> > > > Util.getPackageFromFullClass(fullClassName);
> > > > +
> > > > + // header/copyright
> > > > + writePreamble(out);
> > > > +
> > > > + // package
> > > > + out.println("package " + packageName +
> > > > ";");
> > > > +
> > > > + out.println();
> > > > +
> > > > + String superclassName =
> > > > Util.getClassFromFullClass(fullSuperclassName);
> > > > + if (superclassName.equals(className)) {
> > > > + superclassName =
> > > > fullSuperclassName;
> > > > + }
> > > > + String componentFullClass =
> > > > component.getComponentClass();
> > > > + String componentClass =
> > > > Util.getClassFromFullClass(componentFullClass);
> > > > +
> > > > + generator.writeImports(out, null,
> > > > packageName, fullSuperclassName, superclassName, componentList);
> > > > +
> > > > + generator.writeClassBegin(out,
className,
> > > > superclassName, component, null);
> > > > +
> > > > + int modifiers =
> > > > component.getTagClassModifiers();
> > > > + generator.writeConstructor(out,
component,
> > > > modifiers);
> > > > +
> > > > +
> > > > + if (!Modifier.isAbstract(modifiers)) {
> > > > +
generator.writeGetComponentType(out,
> > > > component);
> > > > +
generator.writeGetRendererType(out,
> > > > component);
> > > > + }
> > > > + generator.writePropertyMembers(out,
> > > > componentList);
> > > > + generator.writeSetPropertiesMethod(out,
> > > > componentClass, componentList);
> > > > + generator.writeReleaseMethod(out,
> > > > componentList);
> > > > +
> > > > + generator.writeClassEnd(out);
> > > > + out.close();
> > > > +
> > > > + // delay write in case of error
> > > > + // timestamp should not be updated when
an
> > > > error occurs
> > > > + // delete target file first, because it
is
> > > > readonly
> > > > + targetFile.delete();
> > > > + FileWriter fw = new
> > > > FileWriter(targetFile);
> > > > + StringBuffer buf = sw.getBuffer();
> > > > + fw.write(buf.toString());
> > > > + fw.close();
> > > > + targetFile.setReadOnly();
> > > > + }
> > > > + catch (Throwable e) {
> > > > + getLog().error("Error generating " +
> > > > fullClassName, e);
> > > > + }
> > > > + }
> > > > + }
> > > >
> > > > - private boolean _is12()
> > > > + private boolean _is12()
> > > > {
> > > > return "1.2".equals(jsfVersion) || "12".equals(jsfVersion);
> > > > }
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -20,6 +20,7 @@
> > > > import
org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
> > > >
> > > > import java.io.IOException;
> > > > +import java.util.Collection;
> > > >
> > > > /**
> > > > * Generator
> > > > @@ -36,6 +37,14 @@
> > > > String fullSuperclassName,
> > > > String superclassName,
> > > > ComponentBean component);
> > > > +
> > > > + void writeImports(
> > > > + PrettyWriter out,
> > > > + SourceTemplate template,
> > > > + String packageName,
> > > > + String fullSuperclassName,
> > > > + String superclassName,
> > > > + Collection components);
> > > >
> > > > void writeClassBegin(
> > > > PrettyWriter out,
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/GeneratorHelper.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/GeneratorHelper.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/GeneratorHelper.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/GeneratorHelper.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -67,10 +67,10 @@
> > > > && property.getJspPropertyName().equals("action"));
> > > > }
> > > >
> > > > - public static boolean isActionListener(PropertyBean property)
> > > > + public static boolean isActionListener(PropertyBean property,
boolean
> > > > is12)
> > > > {
> > > > - return (property.getClass().equals("javax.el.MethodExpression")
> > > > - && property.getJspPropertyName
> > > > ().equals("actionListener"));
> > > > + return
(property.getJspPropertyName().equals("actionListener")
> > > > &&
> > > > + (property.isMethodExpression()) || (is12
> > > > && property.isMethodBinding()));
> > > > }
> > > >
> > > > static public void writeImports(
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -38,6 +38,7 @@
> > > > import java.util.Map;
> > > > import java.util.Set;
> > > > import java.util.TreeSet;
> > > > +import java.util.Collection;
> > > > import java.util.regex.Matcher;
> > > > import java.util.regex.Pattern;
> > > >
> > > > @@ -200,7 +201,13 @@
> > > > out.println("}");
> > > > }
> > > >
> > > > - public void writeImports(
> > > > +
> > > > + public void writeImports(PrettyWriter out, SourceTemplate
> > > > template, String packageName, String fullSuperclassName,
> > > > + String
> > > > superclassName, Collection components) {
> > > > + throw new UnsupportedOperationException("not
> > > > implemented");
> > > > + }
> > > > +
> > > > + public void writeImports(
> > > > PrettyWriter out,
> > > > SourceTemplate template,
> > > > String packageName,
> > > > @@ -525,7 +532,13 @@
> > > > PrettyWriter out,
> > > > ComponentBean component) throws IOException
> > > > {
> > > > - Iterator properties = component.properties();
> > > > + writePropertyMethods(out, component, null);
> > > > + }
> > > > +
> > > > +
> > > > + public void writePropertyMethods(PrettyWriter out, ComponentBean
> > > > component, Collection ignoreList)
> > > > + throws IOException {
> > > > + Iterator properties = component.properties();
> > > > properties = new FilteredIterator(properties, new
> > > > NonVirtualFilter());
> > > > while (properties.hasNext())
> > > > {
> > > > @@ -534,14 +547,14 @@
> > > > writePropertyListMethods(out, property);
> > > > else
> > > > {
> > > > - writePropertyDeclaration(out, property);
> > > > - writePropertyGet(out, property);
> > > > - writePropertySet(out, property);
> > > > + writePropertyDeclaration(out, property);
> > > > + writePropertyGet(out, property, ignoreList);
> > > > + writePropertySet(out, property, ignoreList);
> > > > }
> > > > }
> > > > - }
> > > > + }
> > > >
> > > > - abstract protected void writePropertyListMethods(
> > > > + abstract protected void writePropertyListMethods(
> > > > PrettyWriter out,
> > > > PropertyBean property) throws IOException;
> > > >
> > > > @@ -558,28 +571,32 @@
> > > >
> > > > protected void writePropertySet(
> > > > PrettyWriter out,
> > > > - PropertyBean property) throws IOException
> > > > + PropertyBean property,
> > > > + Collection ignoreList) throws IOException
> > > > {
> > > > String propertyClass = Util.getPropertyClass(property);
> > > > - writePropertySet(out, property, propertyClass);
> > > > + writePropertySet(out, property, propertyClass, ignoreList);
> > > >
> > > > if (property.getAlternateClass() != null)
> > > > {
> > > > String alternateClass = Util.getAlternatePropertyClass
> > > > (property);
> > > > - writePropertySet(out, property, alternateClass);
> > > > + writePropertySet(out, property, alternateClass,
ignoreList);
> > > > }
> > > > }
> > > >
> > > > protected void writePropertySet(
> > > > PrettyWriter out,
> > > > PropertyBean property,
> > > > - String propertyClass) throws IOException
> > > > + String propertyClass,
> > > > + Collection ignoreList) throws IOException
> > > > {
> > > > String propName = property.getPropertyName();
> > > > String propVar = Util.getVariableFromName(propName);
> > > > String description = property.getDescription();
> > > > String setMethod = Util.getPrefixedPropertyName("set",
propName);
> > > > -
> > > > + if (ignoreList != null &&
ignoreList.contains(setMethod)){
> > > > + return;
> > > > + }
> > > > out.println();
> > > > out.println("/**");
> > > > if (description != null)
> > > > @@ -616,14 +633,17 @@
> > > >
> > > > protected void writePropertyGet(
> > > > PrettyWriter out,
> > > > - PropertyBean property) throws IOException
> > > > + PropertyBean property,
> > > > + Collection ignoreList) throws IOException
> > > > {
> > > > String propName = property.getPropertyName();
> > > > String propertyFullClass = property.getPropertyClass();
> > > > String propertyClass = Util.getClassFromFullClass
> > > > (propertyFullClass);
> > > > String description = property.getDescription();
> > > > String getMethod = Util.getMethodReaderFromProperty(propName,
> > > > propertyClass);
> > > > -
> > > > + if (ignoreList != null &&
ignoreList.contains(getMethod)){
> > > > + return;
> > > > + }
> > > > boolean isUnchecked = false;
> > > > String[] genericTypes = property.getPropertyClassParameters();
> > > > if (genericTypes != null && genericTypes.length > 0)
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/ComponentGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/ComponentGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/ComponentGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/ComponentGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -18,8 +18,10 @@
> > > > import
> > > > org.apache.myfaces.trinidadbuild.plugin.faces.generator.ClassGenerator;
> > > > import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
> > > > import
org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
> > > > +import
org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
> > > >
> > > > import java.io.IOException;
> > > > +import java.util.Collection;
> > > >
> > > > /**
> > > > * Generates component classes
> > > > @@ -69,4 +71,9 @@
> > > >
> > > > void writeOther(
> > > > PrettyWriter out, ComponentBean component) throws
IOException;
> > > > +
> > > > +
> > > > + void writePropertyMethods(PrettyWriter out,
> > > > + ComponentBean component,
> > > > + Collection ignoreList) throws IOException;
> > > > }
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -28,6 +28,8 @@
> > > > import java.util.Iterator;
> > > > import java.util.Set;
> > > > import java.util.TreeSet;
> > > > +import java.util.Collection;
> > > > +import java.util.HashSet;
> > > >
> > > > /**
> > > > * TODO: comment this!
> > > > @@ -38,70 +40,72 @@
> > > > public abstract class AbstractComponentTagGenerator implements
> > > > ComponentTagGenerator
> > > > {
> > > >
> > > > - public void writeImports(PrettyWriter out,
> > > > + public void writeImports(PrettyWriter out,
> > > > SourceTemplate template,
> > > > String packageName,
> > > > String fullSuperclassName,
> > > > String superclassName,
> > > > ComponentBean component)
> > > > {
> > > > - String componentFullClass = component.getComponentClass();
> > > > -
> > > > - Set imports = new TreeSet();
> > > > -
> > > > - Iterator properties = component.properties();
> > > > - properties = new FilteredIterator(properties, new
> > > > TagAttributeFilter());
> > > > - //if (properties.hasNext())
> > > > - //{
> > > > - // imports.add(componentFullClass);
> > > > - //}
> > > > -
> > > > - // TODO: remove these imports
> > > > - // FIXME: Actually last 2 can be kept when not abstract
> > > > - //imports.add("javax.faces.component.UIComponent");
> > > > -
> > > > - // superclassName is fully qualified if it collides
> > > > - // with the generated class name and should not be
> > > > - // imported when such a collision would occur
> > > > - if (!superclassName.equals(fullSuperclassName))
> > > > - imports.add(fullSuperclassName);
> > > > -
> > > > - while (properties.hasNext())
> > > > - {
> > > > - PropertyBean property = (PropertyBean)properties.next();
> > > > -
> > > > - String propertyClass = property.getPropertyClass();
> > > > - String[] propertyClassParams =
> > > > property.getPropertyClassParameters();
> > > > -
> > > > - if (propertyClass != null && property.isLiteralOnly())
> > > > - {
> > > > - // Import the property class only if only litterals are
> > > > supported
> > > > - // otherwise the class will be a String inside the tag to
> > > > support
> > > > - // ValueBinding
> > > > - imports.add(propertyClass);
> > > > - }
> > > > -
> > > > -
> > > > -
> > > > - // TODO: restore import and make reference to
> > > > - // ConstantMethodBinding relative rather
> > > > - // than absolute
> > > > - //if (property.isMethodBinding() &&
> > > > - // isStringMethodBindingReturnType(property))
> > > > - //{
> > > > - // imports.add("
> > > > org.apache.myfaces.trinidadinternal.taglib.ConstantMethodBinding");
> > > > - //}
> > > > - }
> > > > + Collection components = new HashSet();
> > > > + components.add(component);
> > > > + writeImports(out, template, packageName,
> > > > fullSuperclassName, superclassName, components);
> > > > + }
> > > >
> > > > - addSpecificImports(imports, component);
> > > >
> > > > - // do not import implicit!
> > > > - imports.removeAll(Util.PRIMITIVE_TYPES);
> > > > + public void writeImports(PrettyWriter out, SourceTemplate
> > > > template, String packageName, String fullSuperclassName,
> > > > + String
> > > > superclassName, Collection components) {
> > > > + Set imports = new TreeSet();
> > > > +
> > > > + for (Iterator lIterator = components.iterator();
> > > > lIterator.hasNext();) {
> > > > + ComponentBean component = (ComponentBean)
> > > > lIterator.next();
> > > > + Iterator properties = component.properties();
> > > > + properties = new FilteredIterator(properties,
new
> > > > TagAttributeFilter());
> > > > +
> > > > + // TODO: remove these imports
> > > > + // FIXME: Actually last 2 can be kept when not
> > > > abstract
> > > > + //imports.add("javax.faces.component.UIComponent
> > > > ");
> > > > +
> > > > + // superclassName is fully qualified if it
> > > > collides
> > > > + // with the generated class name and should not
be
> > > > + // imported when such a collision would occur
> > > > + if (!superclassName.equals(fullSuperclassName))
{
> > > > + imports.add(fullSuperclassName);
> > > > + }
> > > > +
> > > > + while (properties.hasNext()) {
> > > > + PropertyBean property = (PropertyBean)
> > > > properties.next();
> > > > +
> > > > + String propertyClass =
> > > > property.getPropertyClass();
> > > > + String[] propertyClassParams =
> > > > property.getPropertyClassParameters();
> > > > +
> > > > + if (propertyClass != null &&
> > > > property.isLiteralOnly()) {
> > > > + // Import the property class
only
> > > > if only litterals are supported
> > > > + // otherwise the class will be a
> > > > String inside the tag to support
> > > > + // ValueBinding
> > > > + imports.add(propertyClass);
> > > > + }
> > > > +
> > > > + // TODO: restore import and make
reference
> > > > to
> > > > + // ConstantMethodBinding relative
> > > > rather
> > > > + // than absolute
> > > > + //if (property.isMethodBinding() &&
> > > > +
> > > > // isStringMethodBindingReturnType(property))
> > > > + //{
> > > > + // imports.add("
> > > > org.apache.myfaces.trinidadinternal.taglib.ConstantMethodBinding");
> > > > + //}
> > > > + addSpecificImports(imports, component);
> > > > +
> > > > + }
> > > > +
> > > > + }
> > > > + // do not import implicit!
> > > > + imports.removeAll(Util.PRIMITIVE_TYPES);
> > > >
> > > > - GeneratorHelper.writeImports(out, packageName, imports);
> > > > - }
> > > > + GeneratorHelper.writeImports(out, packageName, imports);
> > > > + }
> > > >
> > > > - public void writeClassBegin(PrettyWriter out,
> > > > + public void writeClassBegin(PrettyWriter out,
> > > > String className,
> > > > String superclassName,
> > > > ComponentBean component,
> > > > @@ -194,14 +198,38 @@
> > > > }
> > > > }
> > > >
> > > > - public void writeReleaseMethod(PrettyWriter out,
> > > > +
> > > > + public void writePropertyMembers(PrettyWriter out, Collection
> > > > components) throws IOException {
> > > > + for (Iterator lIterator = components.iterator();
> > > > lIterator.hasNext();) {
> > > > + writePropertyMembers(out, (ComponentBean)
> > > > lIterator.next());
> > > > + }
> > > > + }
> > > > +
> > > > + public void writeReleaseMethod(PrettyWriter out,
> > > > ComponentBean component) throws
> > > > IOException
> > > > {
> > > > - Iterator properties = component.properties();
> > > > - properties = new FilteredIterator(properties, new
> > > > TagAttributeFilter());
> > > > - // TODO: remove special case for UIXFormTag
> > > > - if (properties.hasNext() ||
> > > > - "org.apache.myfaces.trinidadinternal.taglib.UIXFormTag
> > > > ".equals(component.getTagClass()))
> > > > + Collection components = new HashSet();
> > > > + components.add(component);
> > > > + writeReleaseMethod(out, components);
> > > > + }
> > > > +
> > > > +
> > > > + public void writeReleaseMethod(PrettyWriter out, Collection
> > > > components) throws IOException {
> > > > + Collection all = new HashSet();
> > > > + boolean special = false;
> > > > + for (Iterator lIterator = components.iterator();
> > > > lIterator.hasNext();) {
> > > > + ComponentBean component = (ComponentBean)
> > > > lIterator.next();
> > > > + Iterator prop = component.properties();
> > > > + // TODO: remove special case for UIXFormTag
> > > > + special |= "
> > > > org.apache.myfaces.trinidadinternal.taglib.UIXFormTag".equals(
> > > > component.getTagClass());
> > > > + while (prop.hasNext()) {
> > > > + all.add(prop.next());
> > > > + }
> > > > + }
> > > > +
> > > > + Iterator properties = all.iterator();
> > > > + properties = new FilteredIterator(properties, new
> > > > TagAttributeFilter());
> > > > + if (properties.hasNext() || special)
> > > > {
> > > > out.println();
> > > > out.println("@Override");
> > > > @@ -219,11 +247,7 @@
> > > > out.unindent();
> > > > out.println("}");
> > > > }
> > > > - }
> > > > -
> > > > - public abstract void writeSetPropertiesMethod(PrettyWriter out,
> > > > - String componentClass,
> > > > - ComponentBean component)
throws
> > > > IOException;
> > > > + }
> > > >
> > > > protected void addSpecificImports(
> > > > Set imports,
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -20,6 +20,7 @@
> > > > import
org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
> > > >
> > > > import java.io.IOException;
> > > > +import java.util.Collection;
> > > >
> > > > /**
> > > > * Generates tag classes
> > > > @@ -34,9 +35,16 @@
> > > > String componentClass,
> > > > ComponentBean component) throws
> > > > IOException;
> > > >
> > > > + void writeSetPropertiesMethod(PrettyWriter out,
> > > > + String componentClass,
> > > > + Collection components) throws
> > > > IOException;
> > > > +
> > > > void writeReleaseMethod(PrettyWriter out,
> > > > ComponentBean component) throws IOException;
> > > >
> > > > + void writeReleaseMethod(PrettyWriter out,
> > > > + Collection components) throws IOException;
> > > > +
> > > > void writeGetComponentType(PrettyWriter out,
> > > > ComponentBean component) throws IOException;
> > > >
> > > > @@ -45,4 +53,7 @@
> > > >
> > > > void writePropertyMembers(PrettyWriter out,
> > > > ComponentBean component) throws IOException;
> > > > +
> > > > + void writePropertyMembers(PrettyWriter out,
> > > > + Collection components) throws IOException;
> > > > }
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesComponentTagGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesComponentTagGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesComponentTagGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesComponentTagGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -26,6 +26,8 @@
> > > > import java.io.IOException;
> > > > import java.util.Iterator;
> > > > import java.util.Set;
> > > > +import java.util.Collection;
> > > > +import java.util.HashSet;
> > > >
> > > > /**
> > > > * Component tag generator for myfaces
> > > > @@ -74,7 +76,11 @@
> > > > if (_is12)
> > > > {
> > > > imports.add("javax.el.MethodExpression");
> > > > - }
> > > > + if (
> > > > GeneratorHelper.isActionListener(property, _is12))
> > > > + {
> > > > + imports.add("
> > > > javax.faces.event.MethodExpressionActionListener");
> > > > + }
> > > > + }
> > > > else
> > > > {
> > > > imports.add("javax.faces.el.MethodBinding");
> > > > @@ -84,7 +90,7 @@
> > > > {
> > > > imports.add("javax.el.MethodExpression");
> > > > }
> > > > - else if (GeneratorHelper.isActionListener(property))
> > > > + else if (GeneratorHelper.isActionListener(property, _is12))
> > > > {
> > > > imports.add("
> > > > javax.faces.event.MethodExpressionActionListener");
> > > > }
> > > > @@ -124,7 +130,25 @@
> > > > String componentClass,
> > > > ComponentBean component) throws
> > > > IOException
> > > > {
> > > > - Iterator properties = component.properties();
> > > > + Collection components = new HashSet();
> > > > + components.add(component);
> > > > + writeSetPropertiesMethod(out, componentClass,
components);
> > > > + }
> > > > +
> > > > +
> > > > + public void writeSetPropertiesMethod(PrettyWriter out, String
> > > > componentClass, Collection components)
> > > > + throws IOException {
> > > > +
> > > > + Collection all = new HashSet();
> > > > + for (Iterator lIterator = components.iterator();
> > > > lIterator.hasNext();) {
> > > > + ComponentBean component = (ComponentBean)
> > > > lIterator.next();
> > > > + Iterator prop = component.properties();
> > > > + while (prop.hasNext()) {
> > > > + all.add(prop.next());
> > > > + }
> > > > + }
> > > > +
> > > > + Iterator properties = all.iterator();
> > > > properties = new FilteredIterator(properties, new
> > > > TagAttributeFilter());
> > > >
> > > > out.println();
> > > > @@ -141,10 +165,9 @@
> > > > writeSetPropertyMethodBody(out, componentClass, properties);
> > > > out.unindent();
> > > > out.println("}");
> > > > - // }
> > > > - }
> > > > + }
> > > >
> > > > - protected void writeSetPropertyMethodBody(PrettyWriter out,
> > > > + protected void writeSetPropertyMethodBody(PrettyWriter out,
> > > > String componentClass,
> > > > Iterator properties)
throws
> > > > IOException
> > > > {
> > > > @@ -257,12 +280,19 @@
> > > >
> > > > if (_is12)
> > > > {
> > > > - out.println("if (" + propVar + " != null)");
> > > > + out.println("if (" + propVar + " != null)");
> > > > + out.println("{");
> > > > out.indent();
> > > > - out.println("bean.setProperty(" + componentClass + "." +
> > > > propKey + ", " +
> > > > - "new MethodExpressionMethodBinding(" + propVar +
> > > > "));");
> > > > + if (GeneratorHelper.isActionListener(property,
> > > > _is12))
> > > > + {
> > > > + out.println("comp.addActionListener(new
> > > > MethodExpressionActionListener(" + propVar + "));");
> > > > + } else {
> > > > + out.println("bean.setProperty(" +
> > > > componentClass + "." + propKey + ", " +
> > > > + "new
> > > > MethodExpressionMethodBinding(" + propVar + "));");
> > > > + }
> > > > out.unindent();
> > > > - }
> > > > + out.println("}");
> > > > + }
> > > > else
> > > > {
> > > > MethodSignatureBean signature =
> > > > property.getMethodBindingSignature();
> > > > @@ -338,7 +368,7 @@
> > > > {
> > > > out.println("comp.setActionExpression("+propVar+");");
> > > > }
> > > > - else if (GeneratorHelper.isActionListener(property))
> > > > + else if (GeneratorHelper.isActionListener(property, _is12))
> > > > {
> > > > out.println("comp.addActionListener(new
> > > > MethodExpressionActionListener(" + propVar + "));");
> > > > }
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadComponentTagGenerator.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadComponentTagGenerator.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadComponentTagGenerator.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadComponentTagGenerator.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -26,6 +26,8 @@
> > > > import java.io.IOException;
> > > > import java.util.Iterator;
> > > > import java.util.Set;
> > > > +import java.util.Collection;
> > > > +import java.util.HashSet;
> > > >
> > > > /**
> > > > * TODO: comment this!
> > > > @@ -164,7 +166,24 @@
> > > > String componentClass,
> > > > ComponentBean component) throws
> > > > IOException
> > > > {
> > > > - Iterator properties = component.properties();
> > > > + Collection components = new HashSet();
> > > > + components.add(component);
> > > > + writeSetPropertiesMethod(out, componentClass,
components);
> > > > + }
> > > > +
> > > > +
> > > > + public void writeSetPropertiesMethod(PrettyWriter out, String
> > > > componentClass, Collection components)
> > > > + throws IOException {
> > > > + Collection all = new HashSet();
> > > > + for (Iterator lIterator = components.iterator();
> > > > lIterator.hasNext();) {
> > > > + ComponentBean component = (ComponentBean)
> > > > lIterator.next();
> > > > + Iterator prop = component.properties();
> > > > + while (prop.hasNext()) {
> > > > + all.add(prop.next());
> > > > + }
> > > > + }
> > > > +
> > > > + Iterator properties = all.iterator();
> > > > properties = new FilteredIterator(properties, new
> > > > TagAttributeFilter());
> > > > // TODO: only write out setProperties when properties exist
> > > > // if (properties.hasNext())
> > > > @@ -182,9 +201,9 @@
> > > > out.unindent();
> > > > out.println("}");
> > > > // }
> > > > - }
> > > > + }
> > > >
> > > > - protected void writeSetPropertyMethodBody(PrettyWriter out,
> > > > + protected void writeSetPropertyMethodBody(PrettyWriter out,
> > > > String componentClass,
> > > > Iterator properties)
throws
> > > > IOException
> > > > {
> > > >
> > > > Modified:
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SourceTemplate.java
> > > > URL:
> > > >
http://svn.apache.org/viewvc/incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SourceTemplate.java?view=diff&rev=479151&r1=479150&r2=479151
> > > >
> > > >
==============================================================================
> > > > ---
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SourceTemplate.java
> > > > (original)
> > > > +++
> > > >
incubator/adffaces/branches/myfaces-1_2-maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SourceTemplate.java
> > > > Sat Nov 25 09:41:05 2006
> > > > @@ -27,6 +27,7 @@
> > > > import java.util.Iterator;
> > > > import java.util.Map;
> > > > import java.util.Set;
> > > > +import java.util.Collection;
> > > >
> > > > public class SourceTemplate
> > > > {
> > > > @@ -100,8 +101,15 @@
> > > > if (line == null)
> > > > throw new EOFException("File " + _file + " ended prematurely");
> > > >
> > > > - if (line.trim().startsWith(_IGNORE_PREFIX))
> > > > - continue;
> > > > + if (line.trim().startsWith(_IGNORE_PREFIX)){
> > > > + if (line.trim().startsWith(_IGNORE_PREFIX2)){
> > > > + String method = line.trim
> > > > ().substring(_IGNORE_PREFIX2.length()).trim();
> > > > + if (method.length() > 0 ){
> > > > + _ignoreMethods.add(method);
> > > > + }
> > > > + }
> > > > + continue;
> > > > + }
> > > >
> > > > if (line.equals("}"))
> > > > break;
> > > > @@ -146,13 +154,19 @@
> > > > return buffer.toString();
> > > > }
> > > >
> > > > - private File _file;
> > > > + public Collection getIgnoreMethods() {
> > > > + return _ignoreMethods;
> > > > + }
> > > > +
> > > > + private File _file;
> > > > private BufferedReader _reader;
> > > > private Set _imports = new HashSet();
> > > > private Map _fqcnMap = new HashMap();
> > > > private Set _implements = new HashSet();
> > > > private Map _substitutions = new HashMap();
> > > > + private Set _ignoreMethods = new HashSet();
> > > >
> > > > // Magic syntax indicating "please ignore this line"
> > > > static private final String _IGNORE_PREFIX = "/**/";
> > > > + static private final String _IGNORE_PREFIX2 = "/**///";
> > > > }
> > > >
> > > >
> > > >
> > >
> > >
> >
>