Package net.karneim.pojobuilder.model

Examples of net.karneim.pojobuilder.model.TypeM


   * @throws Exception
   */
  @Test
  public void testPrimitiveProperties() throws Exception {
    // Given:  @formatter:off
    TypeM pojoType = new TypeM("com.example.output", "Sample");
   
    BuilderM builder = new BuilderM();
    builder.setPojoType(pojoType);
    builder.setProperties( new PropertyListM(
      new PropertyM("someBoolean", PrimitiveTypeM.BOOLEAN)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someChar", PrimitiveTypeM.CHAR)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someByte", PrimitiveTypeM.BYTE)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someShort", PrimitiveTypeM.SHORT)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someInt", PrimitiveTypeM.INT)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someLong", PrimitiveTypeM.LONG)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someFloat", PrimitiveTypeM.FLOAT)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someDouble", PrimitiveTypeM.DOUBLE)
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*")
    ));   
   
    builder.setType(new TypeM("com.example.output","SampleBuilder"));
    builder.setSelfType(builder.getType());
    builder.setBuildMethod( new BuildMethodM());
   
    // When:
    underTest.generateSource(builder);
View Full Code Here


   * @throws Exception
   */
  @Test
  public void testObjectProperties() throws Exception {
    // Given:  @formatter:off
    TypeM pojoType = new TypeM("com.example.output", "Sample");
   
    BuilderM builder = new BuilderM();
    builder.setPojoType(pojoType);
    builder.setProperties( new PropertyListM(
      new PropertyM("someString", new TypeM("java.lang","String"))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someFile", new TypeM("java.io","File"))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someInteger", new TypeM("java.lang","Integer"))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someBigDecimal", new TypeM("java.math","BigDecimal"))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*")
    ));   
   
    builder.setType(new TypeM("com.example.output","SampleBuilder"));
    builder.setSelfType(builder.getType());
    builder.setBuildMethod( new BuildMethodM());
   
    // When:
    underTest.generateSource(builder);
View Full Code Here

   * @throws Exception
   */
  @Test
  public void testGenericProperties() throws Exception {
    // Given:  @formatter:off
    TypeM pojoType = new TypeM("com.example.output", "Sample");
   
    BuilderM builder = new BuilderM();
    builder.setPojoType(pojoType);
    builder.setProperties( new PropertyListM(
      new PropertyM("someStringList", new TypeM("java.util","List")
        .withTypeParameter(new TypeM("java.lang","String")))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*"),
      new PropertyM("someMap", new TypeM("java.util","Map")
        .withTypeParameter(new TypeM("java.lang","String"),new TypeM("java.lang","Integer")))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*")
    ));   
   
    builder.setType(new TypeM("com.example.output","SampleBuilder"));
    builder.setSelfType(builder.getType());
    builder.setBuildMethod( new BuildMethodM());
   
    // When:
    underTest.generateSource(builder);
View Full Code Here

   */
  @Test
  public void testParameterizedGenericProperties() throws Exception {
    // Given:  @formatter:off
    TypeVariableM K = new TypeVariableM("K");
    TypeVariableM V = new TypeVariableM("V").whichExtends(new TypeM("java.lang","Number"));
    TypeM pojoType = new TypeM("com.example.output", "Sample").withTypeParameter( K, V);
   
    BuilderM builder = new BuilderM();
    builder.setPojoType(pojoType);
    builder.setProperties( new PropertyListM(
      new PropertyM("someMap", new TypeM("java.util","Map")
        .withTypeParameter(K, V))
        .accessibleVia(new FieldAccessM(EnumSet.of(PUBLIC)))
        .withMethodNamePattern("with*")
    ));   
   
    builder.setType(new TypeM("com.example.output","SampleBuilder").withTypeParameter(K, V));
    builder.setSelfType(builder.getType());
    builder.setBuildMethod( new BuildMethodM());
   
    // When:
    underTest.generateSource(builder);
View Full Code Here

          && !javaModelAnalyzerUtil.isDeclaredInObject(methodEl)
          && javaModelAnalyzerUtil.isAccessibleForBuilder(methodEl, output.getBuilderModel())) {
        String propertyName = javaModelAnalyzerUtil.getPropertyName(methodEl);
        ExecutableType execType = (ExecutableType) javaModelAnalyzerUtil.getType(pojoClassType, methodEl);
        TypeMirror propertyTypeMirror = execType.getParameterTypes().get(0);
        TypeM propertyType = typeMFactory.getTypeM(propertyTypeMirror);
        output
            .getBuilderModel()
            .getProperties()
            .getOrCreate(propertyName, propertyType)
            .writableVia(
View Full Code Here

    List<VariableElement> fieldEls = ElementFilter.fieldsIn(memberEls);
    for (VariableElement fieldEl : fieldEls) {
      if (!javaModelAnalyzerUtil.isStatic(fieldEl) && !javaModelAnalyzerUtil.isDeclaredInObject(fieldEl)
          && javaModelAnalyzerUtil.isAccessibleForBuilder(fieldEl, output.getBuilderModel())) {
        DeclaredType declType = (DeclaredType) pojoTypeEl.asType();
        TypeM propertyType = typeMFactory.getTypeM(javaModelAnalyzerUtil.getType(declType, fieldEl));
        output
            .getBuilderModel()
            .getProperties()
            .getOrCreate(fieldEl.getSimpleName().toString(), propertyType)
            .accessibleVia(
View Full Code Here

          && !javaModelAnalyzerUtil.isDeclaredInObject(methodEl)
          && javaModelAnalyzerUtil.isAccessibleForBuilder(methodEl, output.getBuilderModel())) {
        String propertyName = javaModelAnalyzerUtil.getPropertyName(methodEl);
        ExecutableType execType = (ExecutableType) javaModelAnalyzerUtil.getType(pojoClassType, methodEl);
        TypeMirror propertyTypeMirror = execType.getReturnType();
        TypeM propertyType = typeMFactory.getTypeM(propertyTypeMirror);

        PropertyM prop = output.getBuilderModel().getProperties().get(propertyName, propertyType);
        if (prop != null) {
          prop.readableVia(new MethodM(methodEl.getSimpleName().toString(), methodEl.getModifiers())
              .declaredIn(typeMFactory.getTypeM(input.getPojoType())));
View Full Code Here

  }

  public TypeM getTypeM(TypeElement typeElem) {
    String packageName = javaModelAnalyzerUtil.getPackage(typeElem);
    String classname = javaModelAnalyzerUtil.getClassname(typeElem);
    TypeM result = new TypeM(packageName, classname).withTypeParameter(getTypeMArray(typeElem.getTypeParameters()));
    return result;
  }
View Full Code Here

  public TypeM getTypeM(DeclaredType type) {
    TypeElement typeElem = (TypeElement) type.asElement();
    String packageName = javaModelAnalyzerUtil.getPackage(typeElem);
    String classname = javaModelAnalyzerUtil.getClassname(typeElem);
    TypeM result = new TypeM(packageName, classname);

    if (type.getTypeArguments().isEmpty() == false) {
      for (TypeMirror typeArg : type.getTypeArguments()) {
        if (typeArg.getKind() == TypeKind.DECLARED) {
          TypeM typeArgElemTypeM = getTypeM(typeArg);
          result.withTypeParameter(typeArgElemTypeM);
        } else if (typeArg.getKind() == TypeKind.TYPEVAR) {
          TypeVariable typeVar = (TypeVariable) typeArg;
          TypeParameterElement typeParamElem = (TypeParameterElement) typeVar.asElement();
          TypeVariableM var = getTypeVariableM(typeParamElem);
View Full Code Here

    if (var == null) {
      var = new TypeVariableM(typeParameterElement.getSimpleName().toString());
      typeVarCache.put(typeParameterElement, var);
      List<? extends TypeMirror> bounds = typeParameterElement.getBounds();
      for (TypeMirror bound : bounds) {
        TypeM typeM = getTypeM(bound);
        var.whichExtends(typeM);
      }
    }
    return var;
  }
View Full Code Here

TOP

Related Classes of net.karneim.pojobuilder.model.TypeM

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.