Package com.caucho.amber.type

Examples of com.caucho.amber.type.EmbeddableType


   * Creates a field-based schema.
   */
  public SchemaExpr createField(QueryParser parser, String name)
    throws QueryParseException
  {
    EmbeddableType type = _expr.getTargetType();

    AmberField field = type.getField(name);

    if (field == null)
      throw parser.error(L.l("{0}: '{1}' is an unknown field.",
                             type.getBeanClass().getName(),
                             name));

    AmberExpr fieldExpr = _expr.createField(parser, name);

    if (fieldExpr instanceof EmbeddedExpr)
      return new EmbeddedSchemaExpr((EmbeddedExpr) fieldExpr, name);

    throw parser.error(L.l("{0}: '{1}' must be a collection or one-to-one relationship.",
                           type.getBeanClass().getName(),
                           name));
  }
View Full Code Here


    Annotation embeddableAnn = _annotationCfg.getAnnotation();
    EmbeddableConfig embeddableConfig = _annotationCfg.getEmbeddableConfig();

    String typeName = type.getName();

    EmbeddableType embeddableType = _embeddableMap.get(typeName);

    if (embeddableType != null)
      return embeddableType;

    try {
      embeddableType = _persistenceUnit.createEmbeddable(typeName, type);
      _embeddableMap.put(typeName, embeddableType);

      boolean isField = isField(type, embeddableConfig);

      if (isField)
        embeddableType.setFieldAccess(true);

      // XXX: jpa/0u21
      Annotation ann = type.getAnnotation(javax.persistence.Embeddable.class);

      if (ann == null) {
        isField = true;
        embeddableType.setIdClass(true);
        _persistenceUnit.getAmberContainer().addEmbeddable(typeName,
                                                           embeddableType);
      }

      embeddableType.setInstanceClassName(type.getName() +
                                          "__ResinExt");
      embeddableType.setEnhanced(true);

      if (isField)
        introspectFields(_persistenceUnit, embeddableType, null,
                         type, embeddableConfig, true);
      else
        introspectMethods(_persistenceUnit, embeddableType, null,
                          type, embeddableConfig);

    } catch (ConfigException e) {
      if (embeddableType != null)
        embeddableType.setConfigException(e);

      throw e;
    } catch (RuntimeException e) {
      if (embeddableType != null)
        embeddableType.setConfigException(e);

      throw e;
    }

    return embeddableType;
View Full Code Here

        out.print(key.getJavaTypeName() + " a" + i);
      }
    }
    else {
      EmbeddableType embeddable = (EmbeddableType) getEmbeddedIdField().getType();

      ArrayList<AmberField> fields = embeddable.getFields();
      for (int i = 0; i < fields.size(); i++) {
        if (i != 0)
          out.print(", ");

        AmberField field = fields.get(i);

        out.print(field.getJavaTypeName() + " a" + i);
      }
    }

    out.println(")");
    out.println("{");
    out.pushDepth();

    out.println();
    out.println(getForeignTypeName() + " key = new " + getForeignTypeName() + "();");

    if (getOwnerType().getPersistenceUnit().isJPA() && ! isEmbeddedId()) {
      String args = "";

      ArrayList<IdField> keys = getKeys();

      for (int i = 0; i < keys.size(); i++) {
        KeyPropertyField key = (KeyPropertyField) keys.get(i);

        String name = key.getName();

        char ch = Character.toUpperCase(name.charAt(0));
        if (name.length() == 1)
          name = "get" + ch;
        else
          name = "get" + ch + key.getName().substring(1);

        Method method = BeanType.getGetter(_tKeyClass, name);

        if (key.isKeyField() || (method != null)) {
          out.println(key.generateSetKeyProperty("key", "a" + i) + ";");
        }
        else {
          // Arg. constructor jpa/0u21
          if (i != 0)
            args += ", ";

          args += " a" + i;

          out.println("if (a" + i + " == null)");
          out.println("  return new " + getForeignTypeName() + "();");

          if (i + 1 == keys.size())
            out.print("key = new " + getForeignTypeName() + "(" + args + ");");
        }
      }

    }
    else {
      ArrayList fields;

      if (getEmbeddedIdField() == null) {
        // ejb/06x2
        fields = getKeys();
      }
      else {
        EmbeddableType embeddable
          = (EmbeddableType) getEmbeddedIdField().getType();

        fields = embeddable.getFields();
      }

      for (int i = 0; i < fields.size(); i++) {
        AmberField field = (AmberField) fields.get(i);
View Full Code Here

    // ejb/06ie
    if (persistenceUnit.isJPA() && ! isEmbeddedId()) {

      // jpa/0u21

      EmbeddableType embeddable
        = persistenceUnit.getEmbeddable(_tKeyClass.getName());

      // jpa/0u21 ArrayList<IdField> keys = getKeys();
      ArrayList<AmberField> keys = embeddable.getFields();

      for (int i = 0; i < keys.size(); i++) {
        PropertyField key = (PropertyField) keys.get(i);

        String getter = "__caucho_get_field(" + i + ")";
View Full Code Here

   * Creates a field-based schema.
   */
  public SchemaExpr createField(QueryParser parser, String name)
    throws QueryParseException
  {
    EmbeddableType type = _expr.getTargetType();

    AmberField field = type.getField(name);

    if (field == null)
      throw parser.error(L.l("{0}: '{1}' is an unknown field.",
                             type.getBeanClass().getName(),
                             name));

    AmberExpr fieldExpr = _expr.createField(parser, name);

    if (fieldExpr instanceof EmbeddedExpr)
      return new EmbeddedSchemaExpr((EmbeddedExpr) fieldExpr, name);

    throw parser.error(L.l("{0}: '{1}' must be a collection or one-to-one relationship.",
                           type.getBeanClass().getName(),
                           name));
  }
View Full Code Here

    Annotation embeddableAnn = _annotationCfg.getAnnotation();
    EmbeddableConfig embeddableConfig = _annotationCfg.getEmbeddableConfig();

    String typeName = type.getName();

    EmbeddableType embeddableType = _embeddableMap.get(typeName);

    if (embeddableType != null)
      return embeddableType;

    try {
      embeddableType = _persistenceUnit.createEmbeddable(typeName, type);
      _embeddableMap.put(typeName, embeddableType);

      boolean isField = isField(type, embeddableConfig);

      if (isField)
        embeddableType.setFieldAccess(true);

      // XXX: jpa/0u21
      Annotation ann = type.getAnnotation(javax.persistence.Embeddable.class);

      if (ann == null) {
        isField = true;
        embeddableType.setIdClass(true);
        _persistenceUnit.getAmberContainer().addEmbeddable(typeName,
                                                           embeddableType);
      }

      embeddableType.setInstanceClassName(type.getName() +
                                          "__ResinExt");
      embeddableType.setEnhanced(true);

      if (isField)
        introspectFields(_persistenceUnit, embeddableType, null,
                         type, embeddableConfig, true);
      else
        introspectMethods(_persistenceUnit, embeddableType, null,
                          type, embeddableConfig);

    } catch (ConfigException e) {
      if (embeddableType != null)
  embeddableType.setConfigException(e);

      throw e;
    } catch (RuntimeException e) {
      if (embeddableType != null)
  embeddableType.setConfigException(e);

      throw e;
    }

    return embeddableType;
View Full Code Here

        out.print(key.getJavaTypeName() + " a" + i);
      }
    }
    else {
      EmbeddableType embeddable = (EmbeddableType) getEmbeddedIdField().getType();

      ArrayList<AmberField> fields = embeddable.getFields();
      for (int i = 0; i < fields.size(); i++) {
        if (i != 0)
          out.print(", ");

        AmberField field = fields.get(i);

        out.print(field.getJavaTypeName() + " a" + i);
      }
    }

    out.println(")");
    out.println("{");
    out.pushDepth();

    out.println();
    out.println(getForeignTypeName() + " key = new " + getForeignTypeName() + "();");

    if (getOwnerType().getPersistenceUnit().isJPA() && ! isEmbeddedId()) {
      String args = "";

      ArrayList<IdField> keys = getKeys();

      for (int i = 0; i < keys.size(); i++) {
        KeyPropertyField key = (KeyPropertyField) keys.get(i);

        String name = key.getName();

        char ch = Character.toUpperCase(name.charAt(0));
        if (name.length() == 1)
          name = "get" + ch;
        else
          name = "get" + ch + key.getName().substring(1);

        Method method = BeanType.getGetter(_tKeyClass, name);

        if (key.isKeyField() || (method != null)) {
          out.println(key.generateSetKeyProperty("key", "a" + i) + ";");
        }
        else {
          // Arg. constructor jpa/0u21
          if (i != 0)
            args += ", ";

          args += " a" + i;

          out.println("if (a" + i + " == null)");
          out.println("  return new " + getForeignTypeName() + "();");

          if (i + 1 == keys.size())
            out.print("key = new " + getForeignTypeName() + "(" + args + ");");
        }
      }

    }
    else {
      ArrayList fields;

      if (getEmbeddedIdField() == null) {
        // ejb/06x2
        fields = getKeys();
      }
      else {
        EmbeddableType embeddable
          = (EmbeddableType) getEmbeddedIdField().getType();

        fields = embeddable.getFields();
      }

      for (int i = 0; i < fields.size(); i++) {
        AmberField field = (AmberField) fields.get(i);
View Full Code Here

    // ejb/06ie
    if (persistenceUnit.isJPA() && ! isEmbeddedId()) {

      // jpa/0u21

      EmbeddableType embeddable
        = persistenceUnit.getEmbeddable(_tKeyClass.getName());

      // jpa/0u21 ArrayList<IdField> keys = getKeys();
      ArrayList<AmberField> keys = embeddable.getFields();

      for (int i = 0; i < keys.size(); i++) {
        PropertyField key = (PropertyField) keys.get(i);

        String getter = "__caucho_get_field(" + i + ")";
View Full Code Here

TOP

Related Classes of com.caucho.amber.type.EmbeddableType

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.