You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/10/08 06:22:04 UTC
svn commit: rev 54042 - in incubator/directory/eve/trunk/backend/tools: . src/java/org/apache/eve/tools/schema src/template src/test/org/apache/eve/tools/schema
Author: akarasulu
Date: Thu Oct 7 21:22:03 2004
New Revision: 54042
Added:
incubator/directory/eve/trunk/backend/tools/src/java/org/apache/eve/tools/schema/AttributeTypes.template
- copied, changed from rev 54037, incubator/directory/eve/trunk/backend/tools/src/template/AttributeTypes.template
Removed:
incubator/directory/eve/trunk/backend/tools/src/template/AttributeTypes.template
Modified:
incubator/directory/eve/trunk/backend/tools/project.xml
incubator/directory/eve/trunk/backend/tools/src/test/org/apache/eve/tools/schema/AttributeTypesTemplateTest.java
Log:
still refining the template
Modified: incubator/directory/eve/trunk/backend/tools/project.xml
==============================================================================
--- incubator/directory/eve/trunk/backend/tools/project.xml (original)
+++ incubator/directory/eve/trunk/backend/tools/project.xml Thu Oct 7 21:22:03 2004
@@ -64,7 +64,17 @@
<build>
<sourceDirectory>src/java</sourceDirectory>
<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
+
<unitTest>
+ <resources>
+ <resource>
+ <directory>src/java</directory>
+ <includes>
+ <include>**/*.template</include>
+ </includes>
+ </resource>
+ </resources>
+
<includes>
<include>**/*Test.java</include>
</includes>
@@ -72,13 +82,15 @@
<exclude>**/NaughtyTest.java</exclude>
</excludes>
</unitTest>
+
<resources>
<resource>
- <directory>src/conf</directory>
+ <directory>src/java</directory>
<includes>
- <include>*.properties</include>
+ <include>**/*.template</include>
</includes>
</resource>
</resources>
+
</build>
</project>
Copied: incubator/directory/eve/trunk/backend/tools/src/java/org/apache/eve/tools/schema/AttributeTypes.template (from rev 54037, incubator/directory/eve/trunk/backend/tools/src/template/AttributeTypes.template)
==============================================================================
--- incubator/directory/eve/trunk/backend/tools/src/template/AttributeTypes.template (original)
+++ incubator/directory/eve/trunk/backend/tools/src/java/org/apache/eve/tools/schema/AttributeTypes.template Thu Oct 7 21:22:03 2004
@@ -80,13 +80,59 @@
// ------------------------------------------------------------------------
- public AttributeType[] load()
+ public AttributeType[] load( AttributeTypeRegistry attrTypeReg,
+ MatchingRuleRegistry mruleReg )
+ throws NamingException
{
+ String usage;
+ String mruleOid;
+ String superiorOid;
+ MatchingRule mrule;
+ AttributeType superior;
AttributeType[] attributeTypes = new AttributeType[$attrTypeCount];
#foreach ( $attrType in $attrTypes )
#set ( $ii = $velocityCount - 1 )
attributeTypes[$ii] = new MutableAttributeType( "$attrType.getOid()" );
+ attributeTypes[$ii].setSingleValue( $attrType.isSingleValue() );
+ attributeTypes[$ii].setCollective( $attrType.isCollective() );
+ attributeTypes[$ii].setObsolete( $attrType.isObsolete() );
+ attributeTypes[$ii].setCanUserModify( $attrType.isCanUserModify() );
+ attributeTypes[$ii].setLength( $attrType.getLength() );
+
+ // set the superior attribute type
+ superiorOid = "$!attrType.getSuperiorOid()";
+ if ( ! superiorOid.equals("") )
+ {
+ attributeTypes[$ii].setSuperior( attrTypeReg.lookup( superiorOid ) );
+ }
+
+ // set usage enumeration value
+ usage = "$attrType.getUsage().getName()";
+ attributeTypes[$ii].setUsageEnum( UsageEnum.getUsageEnum( usage ) );
+
+ // set the equality matching rule
+ mruleOid = "$!attrType.getEqualityOid()";
+ if ( ! mruleOid.equals("") )
+ {
+ attributeTypes[$ii].setEquality( mruleReg.lookup( mruleOid ) );
+ }
+
+ // set the substr matching rule
+ mruleOid = "$!attrType.getSubstrOid()";
+ if ( ! mruleOid.equals("") )
+ {
+ attributeTypes[$ii].setSubstr( mruleReg.lookup( mruleOid ) );
+ }
+
+ // set the ordering matching rule
+ mruleOid = "$!attrType.getOrderingOid()";
+ if ( ! mruleOid.equals("") )
+ {
+ attributeTypes[$ii].setOrdering( mruleReg.lookup( mruleOid ) );
+ }
+
+
#end
return attributeTypes;
Modified: incubator/directory/eve/trunk/backend/tools/src/test/org/apache/eve/tools/schema/AttributeTypesTemplateTest.java
==============================================================================
--- incubator/directory/eve/trunk/backend/tools/src/test/org/apache/eve/tools/schema/AttributeTypesTemplateTest.java (original)
+++ incubator/directory/eve/trunk/backend/tools/src/test/org/apache/eve/tools/schema/AttributeTypesTemplateTest.java Thu Oct 7 21:22:03 2004
@@ -19,11 +19,12 @@
import junit.framework.TestCase;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
-import org.apache.ldap.common.schema.BaseAttributeType;
+import org.apache.ldap.common.schema.*;
-import java.io.StringWriter;
+import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
+import java.util.ArrayList;
/**
@@ -34,11 +35,55 @@
*/
public class AttributeTypesTemplateTest extends TestCase
{
+ private FileReader getResourceReader( String res ) throws Exception
+ {
+ String path = getClass().getResource( res ).getFile() ;
+ return new FileReader( path );
+ }
+
+
+ private boolean mkdirs( String base, String path )
+ {
+ String[] comps = path.split( "/" );
+ File file = new File( base );
+
+ if ( ! file.exists() )
+ {
+ file.mkdirs();
+ }
+
+ for ( int ii = 0; ii < comps.length; ii++ )
+ {
+ file = new File( file, comps[ii] );
+ if ( ! file.exists() )
+ {
+ file.mkdirs();
+ }
+ }
+
+ return file.exists();
+ }
+
+
+ private FileWriter getResourceWriter( String srcBase, String pkg,
+ String classname ) throws Exception
+ {
+ mkdirs( srcBase, pkg.replace( '.', File.separatorChar ) );
+ File base = new File( srcBase );
+ String relativePath = pkg.replace( '.', File.separatorChar );
+ File dir = new File( base, relativePath );
+ return new FileWriter( new File( dir, classname + ".java" ) );
+ }
+
+
public void testGeneration() throws Exception
{
TestAttributeType[] attributeTypes = new TestAttributeType[2];
attributeTypes[0] = new TestAttributeType( "1.1.1.1" );
+ attributeTypes[0].setUsage( UsageEnum.DIRECTORYOPERATION );
+
attributeTypes[1] = new TestAttributeType( "1.1.1.2" );
+ attributeTypes[1].setUsage( UsageEnum.DIRECTORYOPERATION );
VelocityContext context = new VelocityContext();
context.put( "package", "org.apache.eve.schema.config" );
@@ -50,10 +95,9 @@
context.put( "attrTypeCount", new Integer( attributeTypes.length ) );
context.put( "attrTypes", attributeTypes );
- FileReader template = new FileReader(
- "c:\\projects\\home\\akarasulu\\projects\\directory\\eve\\trunk\\backend\\tools\\src\\template\\AttributeTypes.template" );
- FileWriter writer = new FileWriter(
- "c:\\projects\\home\\akarasulu\\projects\\directory\\eve\\trunk\\backend\\tools\\src\\java\\org\\apache\\eve\\schema\\config\\CoreAttributeTypes.java" );
+ FileReader template = getResourceReader( "AttributeTypes.template" );
+ FileWriter writer = getResourceWriter( "target/schema",
+ "org.apache.eve.schema.config", "CoreAttributeTypes" );
Velocity.init();
Velocity.evaluate( context, writer, "LOG", template );
writer.flush();
@@ -66,6 +110,86 @@
protected TestAttributeType( String oid )
{
super( oid );
+ }
+
+ protected void setSuperior( AttributeType superior )
+ {
+ super.setSuperior( superior );
+ }
+
+ protected void setNameList( ArrayList nameList )
+ {
+ super.setNameList( nameList );
+ }
+
+ protected void setEquality( MatchingRule equality )
+ {
+ super.setEquality( equality );
+ }
+
+ protected void setSubstr( MatchingRule substr )
+ {
+ super.setSubstr( substr );
+ }
+
+ protected void setOrdering( MatchingRule ordering )
+ {
+ super.setOrdering( ordering );
+ }
+
+ protected void setSyntax( Syntax syntax )
+ {
+ super.setSyntax( syntax );
+ }
+
+ protected void setSingleValue( boolean singleValue )
+ {
+ super.setSingleValue( singleValue );
+ }
+
+ protected void setCollective( boolean collective )
+ {
+ super.setCollective( collective );
+ }
+
+ protected void setCanUserModify( boolean canUserModify )
+ {
+ super.setCanUserModify( canUserModify );
+ }
+
+ protected void setObsolete( boolean obsolete )
+ {
+ super.setObsolete( obsolete );
+ }
+
+ protected void setUsage( UsageEnum usage )
+ {
+ super.setUsage( usage );
+ }
+
+ protected void setLength( int length )
+ {
+ super.setLength( length );
+ }
+
+ public String getSuperiorOid()
+ {
+ return super.getSuperior() != null ? super.getSuperior().getOid() : null;
+ }
+
+ public String getSubstrOid()
+ {
+ return super.getSubstr() != null ? super.getSubstr().getOid() : null;
+ }
+
+ public String getOrderingOid()
+ {
+ return super.getOrdering() != null ? super.getOrdering().getOid() : null;
+ }
+
+ public String getEqualityOid()
+ {
+ return super.getEquality() != null ? super.getEquality().getOid() : null;
}
}
}