org.castor.xml
Class JavaNamingImpl

java.lang.Object
  extended by org.castor.xml.JavaNamingImpl
All Implemented Interfaces:
JavaNaming

public class JavaNamingImpl
extends java.lang.Object
implements JavaNaming

This class converts XML Names to proper Java names. As Java names are not completely defined this implementation is Castor specific. The first implementation was done by Keith Visco but had been changed radically since.

Version:
$Id: JavaNamingImpl.java 7437 2008-02-06 10:21:45Z jgrueneis $
Author:
Joachim Grueneis

Field Summary
static boolean _upperCaseAfterUnderscore
          Used for backward compatibility, if you wish to be backward compatible with 0.9.3.9 and earlier set this boolean to true.
static java.lang.String UPPER_CASE_AFTER_UNDERSCORE_PROPERTY
          The property name to use in the castor.properties file to specify the value of the upperCaseAfterUnderscore variable.
 
Fields inherited from interface org.castor.xml.JavaNaming
FIELD_UNDERSCORE_PREFIX, METHOD_PREFIX_ADD, METHOD_PREFIX_CREATE, METHOD_PREFIX_GET, METHOD_PREFIX_IS, METHOD_PREFIX_SET
 
Constructor Summary
JavaNamingImpl()
          private constructor.
 
Method Summary
 java.lang.String extractFieldNameFromField(java.lang.reflect.Field field)
          Extracts the field name part from the Field.
 java.lang.String extractFieldNameFromMethod(java.lang.reflect.Method method)
          Extracts the filed name part from the methods name.
 java.lang.String getAddMethodNameForField(java.lang.String fieldName)
          Generates the name of an add method for the given field name.
 java.lang.String getClassName(java.lang.Class clazz)
          Gets the class name without package part.
 java.lang.String getCreateMethodNameForField(java.lang.String fieldName)
          Generates the name of a set method for the given field name.
 java.lang.String getGetMethodNameForField(java.lang.String fieldName)
          Generates the name of a get method for the given field name.
 java.lang.String getIsMethodNameForField(java.lang.String fieldName)
          Generates the name of an is method for the given field name.
 java.lang.String getPackageName(java.lang.String className)
          Gets the package name of the given class name.
 java.lang.String getQualifiedFileName(java.lang.String fileName, java.lang.String packageName)
          Qualifies the given fileName with the given packageName and returns the resulting file path.
If packageName is null or a zero-length String, this method will return fileName.
 java.lang.String getSetMethodNameForField(java.lang.String fieldName)
          Generates the name of a create method for the given field name.
 boolean isAddMethod(java.lang.reflect.Method method)
          Checks if the given method is an add method.
 boolean isCreateMethod(java.lang.reflect.Method method)
          Checks if the given method is a create method.
 boolean isGetMethod(java.lang.reflect.Method method)
          Checks if the given method is a get method.
 boolean isIsMethod(java.lang.reflect.Method method)
          Checks if the given method is a 'is' method.
 boolean isKeyword(java.lang.String name)
          Returns true if the given String is a Java keyword which will cause a problem when used as a variable name.
 boolean isSetMethod(java.lang.reflect.Method method)
          Checks if the given method is a set method.
 boolean isValidJavaIdentifier(java.lang.String string)
          Returns true if the given String matches the production of a valid Java identifier.
 boolean isValidPackageName(java.lang.String packageName)
          Checks if the given pacckage name is valid or not.
 java.lang.String packageToPath(java.lang.String packageName)
          Converts the given Package name to it's corresponding Path.
 java.lang.String toJavaClassName(java.lang.String name)
          Cuts away a leading namespace prefix (if there is one in place).
 java.lang.String toJavaMemberName(java.lang.String name)
          Appends a leading '_' and converts the given name to a java name.
 java.lang.String toJavaMemberName(java.lang.String name, boolean useKeywordSubstitutions)
          Appends a leading '_' and converts the given name to a java name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UPPER_CASE_AFTER_UNDERSCORE_PROPERTY

public static final java.lang.String UPPER_CASE_AFTER_UNDERSCORE_PROPERTY
The property name to use in the castor.properties file to specify the value of the upperCaseAfterUnderscore variable.

See Also:
Constant Field Values

_upperCaseAfterUnderscore

public static boolean _upperCaseAfterUnderscore
Used for backward compatibility, if you wish to be backward compatible with 0.9.3.9 and earlier set this boolean to true.

Constructor Detail

JavaNamingImpl

public JavaNamingImpl()
private constructor.

Method Detail

isKeyword

public final boolean isKeyword(java.lang.String name)
Returns true if the given String is a Java keyword which will cause a problem when used as a variable name.

Specified by:
isKeyword in interface JavaNaming
Parameters:
name - the name to check
Returns:
true if it is a keyword
See Also:
JavaNaming.isKeyword(java.lang.String)

isValidJavaIdentifier

public final boolean isValidJavaIdentifier(java.lang.String string)
Returns true if the given String matches the production of a valid Java identifier.

Specified by:
isValidJavaIdentifier in interface JavaNaming
Parameters:
string - The String to check the production of.
Returns:
true if the given String matches the production of a valid Java name, otherwise false.
See Also:
JavaNaming.isValidJavaIdentifier(java.lang.String)

toJavaClassName

public final java.lang.String toJavaClassName(java.lang.String name)
Cuts away a leading namespace prefix (if there is one in place).

Specified by:
toJavaClassName in interface JavaNaming
Parameters:
name - the XML name to convert to a Java name
Returns:
a name which follows Java naming conventions
See Also:
JavaNaming.toJavaClassName(java.lang.String)

toJavaMemberName

public final java.lang.String toJavaMemberName(java.lang.String name)
Appends a leading '_' and converts the given name to a java name.

Specified by:
toJavaMemberName in interface JavaNaming
Parameters:
name - the XML name to convert
Returns:
a Java member name starting with a leading _
See Also:
JavaNaming.toJavaMemberName(java.lang.String)

toJavaMemberName

public final java.lang.String toJavaMemberName(java.lang.String name,
                                               boolean useKeywordSubstitutions)
Appends a leading '_' and converts the given name to a java name.

Specified by:
toJavaMemberName in interface JavaNaming
Parameters:
name - the XML name to convert
useKeywordSubstitutions - set to true to turn on keyword substitution
Returns:
a Java member name starting with a leading _
See Also:
JavaNaming.toJavaMemberName(java.lang.String,boolean)

isValidPackageName

public final boolean isValidPackageName(java.lang.String packageName)
Checks if the given pacckage name is valid or not. Empty pacakge names are considered valid!

Specified by:
isValidPackageName in interface JavaNaming
Parameters:
packageName - name of package as String with periods
Returns:
true if package name is valid
See Also:
JavaNaming.isValidPackageName(java.lang.String)

packageToPath

public final java.lang.String packageToPath(java.lang.String packageName)
Converts the given Package name to it's corresponding Path. The path will be a relative path.

Specified by:
packageToPath in interface JavaNaming
Parameters:
packageName - the package name to convert
Returns:
a String containing the resulting patch
See Also:
JavaNaming.packageToPath(java.lang.String)

getQualifiedFileName

public final java.lang.String getQualifiedFileName(java.lang.String fileName,
                                                   java.lang.String packageName)
Qualifies the given fileName with the given packageName and returns the resulting file path.
If packageName is null or a zero-length String, this method will return fileName.

Specified by:
getQualifiedFileName in interface JavaNaming
Parameters:
fileName - The file name to be qualified.
packageName - The package name to be used for qualifying.
Returns:
The qualified file path.
See Also:
JavaNaming.getQualifiedFileName(java.lang.String,java.lang.String)

getPackageName

public final java.lang.String getPackageName(java.lang.String className)
Gets the package name of the given class name.

Specified by:
getPackageName in interface JavaNaming
Parameters:
className - The class name to retrieve the package name from.
Returns:
The package name or the empty String if className is null or does not contain a package.
See Also:
JavaNaming.getPackageName(java.lang.String)

extractFieldNameFromMethod

public final java.lang.String extractFieldNameFromMethod(java.lang.reflect.Method method)
Extracts the filed name part from the methods name. Mostly it cuts away the method prefix.

Specified by:
extractFieldNameFromMethod in interface JavaNaming
Parameters:
method - the Method to process
Returns:
the extracted field name
See Also:
JavaNaming.extractFieldNameFromMethod(java.lang.reflect.Method)

extractFieldNameFromField

public final java.lang.String extractFieldNameFromField(java.lang.reflect.Field field)
Extracts the field name part from the Field. Mostly it cuts away prefixes like '_'.

Specified by:
extractFieldNameFromField in interface JavaNaming
Parameters:
field - the Field to process
Returns:
The extracted field name.
See Also:
JavaNaming.extractFieldNameFromField(java.lang.reflect.Field)

isSetMethod

public final boolean isSetMethod(java.lang.reflect.Method method)
Checks if the given method is a set method.

Specified by:
isSetMethod in interface JavaNaming
Parameters:
method - the Method to check
Returns:
true if it is a set method
See Also:
JavaNaming.isSetMethod(java.lang.reflect.Method)

isCreateMethod

public final boolean isCreateMethod(java.lang.reflect.Method method)
Checks if the given method is a create method.

Specified by:
isCreateMethod in interface JavaNaming
Parameters:
method - the Method to check
Returns:
true if it is a create method
See Also:
JavaNaming.isCreateMethod(java.lang.reflect.Method)

isGetMethod

public final boolean isGetMethod(java.lang.reflect.Method method)
Checks if the given method is a get method.

Specified by:
isGetMethod in interface JavaNaming
Parameters:
method - the Method to check
Returns:
true if it is a get method
See Also:
JavaNaming.isGetMethod(java.lang.reflect.Method)

isIsMethod

public final boolean isIsMethod(java.lang.reflect.Method method)
Checks if the given method is a 'is' method.

Specified by:
isIsMethod in interface JavaNaming
Parameters:
method - the Method to check
Returns:
true if it is a 'is' method
See Also:
JavaNaming.isIsMethod(java.lang.reflect.Method)

isAddMethod

public final boolean isAddMethod(java.lang.reflect.Method method)
Checks if the given method is an add method.

Specified by:
isAddMethod in interface JavaNaming
Parameters:
method - the Method to check
Returns:
true if it is an add method
See Also:
JavaNaming.isAddMethod(java.lang.reflect.Method)

getAddMethodNameForField

public final java.lang.String getAddMethodNameForField(java.lang.String fieldName)
Generates the name of an add method for the given field name.

Specified by:
getAddMethodNameForField in interface JavaNaming
Parameters:
fieldName - the field name to generate a method name for
Returns:
the generated add method name

getCreateMethodNameForField

public final java.lang.String getCreateMethodNameForField(java.lang.String fieldName)
Generates the name of a set method for the given field name.

Specified by:
getCreateMethodNameForField in interface JavaNaming
Parameters:
fieldName - the field name to generate a method name for
Returns:
the generated set method name

getGetMethodNameForField

public final java.lang.String getGetMethodNameForField(java.lang.String fieldName)
Generates the name of a get method for the given field name.

Specified by:
getGetMethodNameForField in interface JavaNaming
Parameters:
fieldName - the field name to generate a method name for
Returns:
the generated get method name

getIsMethodNameForField

public final java.lang.String getIsMethodNameForField(java.lang.String fieldName)
Generates the name of an is method for the given field name.

Specified by:
getIsMethodNameForField in interface JavaNaming
Parameters:
fieldName - the field name to generate a method name for
Returns:
the generated is method name

getSetMethodNameForField

public final java.lang.String getSetMethodNameForField(java.lang.String fieldName)
Generates the name of a create method for the given field name.

Specified by:
getSetMethodNameForField in interface JavaNaming
Parameters:
fieldName - the field name to generate a method name for
Returns:
the generated create method name

getClassName

public java.lang.String getClassName(java.lang.Class clazz)
Gets the class name without package part.

Specified by:
getClassName in interface JavaNaming
Parameters:
clazz - The class to retrieve the name from
Returns:
the class name without package part or null the class name without package part or null
See Also:
JavaNaming.getClassName(java.lang.Class)


Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com