Example usage for com.google.gwt.user.rebind SourceWriter outdent

List of usage examples for com.google.gwt.user.rebind SourceWriter outdent

Introduction

In this page you can find the example usage for com.google.gwt.user.rebind SourceWriter outdent.

Prototype

void outdent();

Source Link

Usage

From source file:fr.putnami.pwt.core.model.rebind.ModelCreator.java

License:Open Source License

private void generateStaticInitializer(TreeLogger logger, SourceWriter srcWriter) {

    srcWriter/*from ww  w. j  a  v  a 2s. c  om*/
            .println("protected static final Map<String, PropertyDescription> PROPERTIES = Maps.newHashMap();");
    srcWriter.println("static{");
    srcWriter.indent();

    for (String propertyName : this.propertyTypes.keySet()) {
        JType propertyType = this.propertyTypes.get(propertyName);
        String simplePropertyTypeName = propertyType.getSimpleSourceName();
        String modelName = this.subModels.get(propertyType);
        if (modelName != null) {
            modelName += ".INSTANCE";
        }

        try {
            if (propertyType.isPrimitive() == null) {
                Class<?> propertyClass = Class.forName(propertyType.getQualifiedSourceName());

                if (Collection.class.isAssignableFrom(propertyClass)) {
                    JParameterizedType parametrizedType = propertyType.isParameterized();
                    JType subType = propertyType;
                    if (parametrizedType != null) {
                        subType = parametrizedType.getTypeArgs()[0];
                        String submodelName = this.subModels.get(subType);
                        if (submodelName != null) {
                            submodelName += ".INSTANCE";
                        } else {
                            submodelName = subType.getSimpleSourceName() + ".class";
                        }
                        modelName = String.format("new ModelCollection<%s>(%s.class, %s)",
                                subType.getSimpleSourceName(), propertyType.getSimpleSourceName(),
                                submodelName);
                    } else {
                        logger.branch(Type.WARN, String.format(
                                "Property [%s] on bean %s is a raw collection type. You cannot use it on editors.",
                                propertyName, this.beanType.getQualifiedSourceName()));
                        modelName = "new ModelCollection((Model) null)";
                    }
                }
            }
        } catch (ClassNotFoundException e) {
            logger.branch(Type.WARN,
                    String.format("%s class not found.", propertyType.getQualifiedSourceName()));
        }
        Boolean getter = this.getters.containsKey(propertyName);
        Boolean setter = this.setters.containsKey(propertyName);

        srcWriter.print("PROPERTIES.put(\"%s\", newPropertyDescription(\"%s\", %s.class, %s, %s, %s",
                propertyName, propertyName, simplePropertyTypeName, modelName, getter, setter);
        this.generateValidators(srcWriter, propertyName);
        srcWriter.println("));");
    }
    srcWriter.outdent();
    srcWriter.println("}");

    srcWriter.println("protected Map<String, PropertyDescription> getProperties(){");
    srcWriter.println("   return PROPERTIES;");
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.model.rebind.ModelCreator.java

License:Open Source License

private void generateConstructor(TreeLogger logger, SourceWriter srcWriter) {
    int lastIndex = this.proxyModelQualifiedName.lastIndexOf('.');
    String className = lastIndex == -1 ? this.proxyModelQualifiedName
            : this.proxyModelQualifiedName.substring(lastIndex + 1, this.proxyModelQualifiedName.length());
    srcWriter.println("public %s(){", className);
    srcWriter.indent();//from   w  w  w  .  j  ava  2  s.co  m

    if (this.subModels.get(this.parentType) != null) {
        srcWriter.println("super(%s.INSTANCE, %s.class);", this.subModels.get(this.parentType),
                this.beanType.getSimpleSourceName());
        srcWriter.println();
    } else {
        srcWriter.println("super(%s.class);", this.beanType.getSimpleSourceName());
        srcWriter.println();
    }

    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.model.rebind.ModelCreator.java

License:Open Source License

private void generateCreate(TreeLogger logger, SourceWriter srcWriter) {
    srcWriter.println("public %s newInstance() {", this.beanType.getSimpleSourceName());
    srcWriter.indent();/*from   ww w . ja va  2  s . c o m*/
    if (!this.beanType.isAbstract()) {
        srcWriter.println("return new %s();", this.beanType.getSimpleSourceName());
    } else {
        srcWriter.println("throw new RuntimeException(\"Can not instantiate the abstract class %s\");",
                this.beanType.getSimpleSourceName());
    }
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.model.rebind.ModelCreator.java

License:Open Source License

private void generateInternalGet(TreeLogger logger, SourceWriter srcWriter) {
    srcWriter.println("protected <P> P internalGet(%s bean, String fieldName){",
            this.beanType.getSimpleSourceName());
    srcWriter.indent();//from  w  w w .j  a v  a 2s .c  o  m
    for (String propertyName : this.propertyTypes.keySet()) {
        JType propertyType = this.propertyTypes.get(propertyName);
        JPrimitiveType primitiveType = propertyType.isPrimitive();
        JMethod getter = this.getters.get(propertyName);
        if (getter != null) {
            if (primitiveType != null) {
                String boxedName = primitiveType.getQualifiedBoxedSourceName();
                boxedName = boxedName.substring(boxedName.lastIndexOf(".") + 1, boxedName.length());
                srcWriter.println(
                        "if(\"%s\".equals(fieldName)){  return (P) PrimitiveUtils.castTo%s(bean.%s()); }",
                        propertyName, boxedName, getter.getName());
            } else {
                srcWriter.println("if(\"%s\".equals(fieldName)){  return (P) bean.%s(); }", propertyName,
                        getter.getName());
            }
        } else if (this.publicFields.containsKey(propertyName)) {
            if (primitiveType != null) {
                String boxedName = primitiveType.getQualifiedBoxedSourceName();
                boxedName = boxedName.substring(boxedName.lastIndexOf(".") + 1, boxedName.length());
                srcWriter.println(
                        "if(\"%s\".equals(fieldName)){  return (P) PrimitiveUtils.castTo%s(bean.%s); }",
                        propertyName, boxedName, propertyName);
            } else {
                srcWriter.println("if(\"%s\".equals(fieldName)){  return (P) bean.%s; }", propertyName,
                        propertyName);
            }
        }
    }
    srcWriter.println();
    srcWriter.println("return null;");
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.model.rebind.ModelCreator.java

License:Open Source License

private void generateInternalSet(TreeLogger logger, SourceWriter srcWriter) {
    srcWriter.println("protected <P> void internalSet(%s bean, String fieldName, P value){",
            this.beanType.getSimpleSourceName());
    srcWriter.indent();//from   w w w . j  ava  2s.  c o m
    for (String propertyName : this.propertyTypes.keySet()) {
        JType propertyType = this.propertyTypes.get(propertyName);
        JPrimitiveType primitiveType = propertyType.isPrimitive();
        JMethod setter = this.setters.get(propertyName);
        if (setter != null) {
            if (primitiveType != null) {
                srcWriter.println(
                        "if(\"%s\".equals(fieldName)){  bean.%s((%s) PrimitiveUtils.asPrimitive((%s)value)); }",
                        propertyName, setter.getName(), propertyType.getSimpleSourceName(),
                        primitiveType.getQualifiedBoxedSourceName());
            } else {
                srcWriter.println("if(\"%s\".equals(fieldName)){  bean.%s((%s) value); }", propertyName,
                        setter.getName(), propertyType.getSimpleSourceName());
            }
        } else if (this.publicFields.containsKey(propertyName)) {
            if (primitiveType != null) {
                srcWriter.println(
                        "if(\"%s\".equals(fieldName)){ bean.%s = PrimitiveUtils.asPrimitive((%s) value); }",
                        propertyName, propertyName, primitiveType.getQualifiedBoxedSourceName());
            } else {
                srcWriter.println("if(\"%s\".equals(fieldName)){  bean.%s = (%s) value; }", propertyName,
                        propertyName, propertyType.getSimpleSourceName());
            }
        }
    }
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.mvp.rebind.ProxyViewCreator.java

License:Open Source License

public String create(TreeLogger logger, GeneratorContext context) {
    PrintWriter printWriter = context.tryCreate(logger, this.packageName, this.viewProxySimpleName);
    if (printWriter == null) {
        return this.viewProxyQualifiedName;
    }/*from w  ww  .java 2 s  .  co  m*/

    SourceWriter srcWriter = this.getSourceWriter(printWriter, context);

    srcWriter.indent();
    this.generateProxy(logger, srcWriter);
    srcWriter.println();
    this.generateTokenPrefixes(logger, srcWriter);
    srcWriter.println();
    if (this.placeTokenizerClass == null) {
        this.generateInternalTokenizer(logger, srcWriter);
    } else {
        this.generateDelegateTokenizer(logger, srcWriter);
    }
    this.generateActivityFactory(logger, srcWriter);
    srcWriter.outdent();

    srcWriter.commit(logger);
    return this.viewProxyQualifiedName;
}

From source file:fr.putnami.pwt.core.mvp.rebind.ProxyViewCreator.java

License:Open Source License

private void generateActivityFactory(TreeLogger logger, SourceWriter srcWriter) {
    srcWriter.println("@Override");
    srcWriter.println("public Activity createActivity(Place place) {");
    srcWriter.indent();//from   w ww .j  ava2 s.co m
    srcWriter.println("return new ViewActivity(this, place);");
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.mvp.rebind.ProxyViewCreator.java

License:Open Source License

private void generateInternalTokenizer(TreeLogger logger, SourceWriter srcWriter) {
    boolean hasTokeConstructor = false;
    for (JConstructor constructor : this.placeType.getConstructors()) {
        if (constructor.getParameters().length == 1 && constructor.getParameters()[0].getType()
                .getSimpleSourceName().equals(String.class.getSimpleName())) {
            hasTokeConstructor = true;//from   w ww.  j av  a2  s  .co m
        }
    }
    srcWriter.println("@Override");
    srcWriter.println("public %s getPlace(String token) {", this.placeType.getSimpleSourceName());
    srcWriter.indent();
    if (hasTokeConstructor) {
        srcWriter.println("return new %s(token);", this.placeType.getSimpleSourceName());
    } else {
        srcWriter.println("%s place = new %s();", this.placeType.getSimpleSourceName(),
                this.placeType.getSimpleSourceName());
        srcWriter.println("place.setToken(token);");
        srcWriter.println("return place;");
    }
    srcWriter.outdent();
    srcWriter.println("}");
    srcWriter.println("@Override");
    srcWriter.println("public String getToken(%s place) {", this.placeType.getSimpleSourceName());
    srcWriter.indent();
    srcWriter.println("if(place instanceof ViewPlace){");
    srcWriter.indent();
    srcWriter.println("return ((ViewPlace)place).getToken();");
    srcWriter.outdent();
    srcWriter.println("}");
    srcWriter.println("return null;");
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.mvp.rebind.ProxyViewCreator.java

License:Open Source License

private void generateDelegateTokenizer(TreeLogger logger, SourceWriter srcWriter) {
    srcWriter.println("@Override");
    srcWriter.println("public %s getPlace(String token) {", this.placeType.getSimpleSourceName());
    srcWriter.indent();//  ww w  .jav a 2  s  .  c om
    srcWriter.println("return new %s().getPlace(token);", this.placeTokenizerClass.getSimpleName());
    srcWriter.outdent();
    srcWriter.println("}");
    srcWriter.println("@Override");
    srcWriter.println("public String getToken(%s place) {", this.placeType.getSimpleSourceName());
    srcWriter.indent();
    srcWriter.println("return new %s().getToken(place);", this.placeTokenizerClass.getSimpleName());
    srcWriter.outdent();
    srcWriter.println("}");
}

From source file:fr.putnami.pwt.core.mvp.rebind.ProxyViewCreator.java

License:Open Source License

private void generateTokenPrefixes(TreeLogger logger, SourceWriter srcWriter) {
    List<String> tokens = Lists.newArrayList();
    tokens.add("\"" + this.placeType.getSimpleSourceName().replaceAll("Place$", "") + "\"");
    for (String alias : this.activityDescrition.aliases()) {
        tokens.add("\"" + alias + "\"");
    }//from   www. j av  a 2 s. c o  m

    srcWriter.println("@Override");
    srcWriter.println("public String[] getPlacePrefixes(){");
    srcWriter.indent();
    srcWriter.println("return new String[]{ %s };", Joiner.on(", ").join(tokens));
    srcWriter.outdent();
    srcWriter.println("}");
}