import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
*/
public final class BindingGeneratorUtil {
- private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyMMdd");
+ private static final ThreadLocal<SimpleDateFormat> DATE_FORMAT = new ThreadLocal<SimpleDateFormat>() {
+
+ @Override
+ protected SimpleDateFormat initialValue() {
+ return new SimpleDateFormat("yyMMdd");
+ }
+
+ @Override
+ public void set(SimpleDateFormat value) {
+ throw new UnsupportedOperationException();
+ }
+ };
/**
* Array of strings values which represents JAVA reserved words.
packageNameBuilder.append(namespace);
packageNameBuilder.append(".rev");
- packageNameBuilder.append(DATE_FORMAT.format(module.getRevision()));
+ packageNameBuilder.append(DATE_FORMAT.get().format(module.getRevision()));
return validateJavaPackage(packageNameBuilder.toString());
}
+ public static String packageNameForGeneratedType(final String basePackageName, final SchemaPath schemaPath) {
+ return packageNameForGeneratedType(basePackageName, schemaPath, false);
+ }
+
/**
* Creates package name from specified <code>basePackageName</code> (package
* name for module) and <code>schemaPath</code>.
* name of this node
* @return string with valid JAVA package name
*/
- public static String packageNameForGeneratedType(final String basePackageName, final SchemaPath schemaPath) {
+ public static String packageNameForGeneratedType(final String basePackageName, final SchemaPath schemaPath,
+ boolean isUsesAugment) {
if (basePackageName == null) {
throw new IllegalArgumentException("Base Package Name cannot be NULL!");
}
final StringBuilder builder = new StringBuilder();
builder.append(basePackageName);
final List<QName> pathToNode = schemaPath.getPath();
- final int traversalSteps = (pathToNode.size() - 1);
+ final int traversalSteps;
+ if (isUsesAugment) {
+ traversalSteps = (pathToNode.size());
+ } else {
+ traversalSteps = (pathToNode.size() - 1);
+ }
for (int i = 0; i < traversalSteps; ++i) {
builder.append(".");
String nodeLocalName = pathToNode.get(i).getLocalName();
* JAVA class name
* @return string which is in accordance with best practices for JAVA class
* name.
- *
+ *
* @deprecated Use {@link BindingMapping#getClassName(QName)} instead.
*/
@Deprecated