コード例 #1
0
 void delete(Db db, Object obj) {
   if (primaryKeyColumnNames == null || primaryKeyColumnNames.size() == 0) {
     throw new IllegalStateException(
         "No primary key columns defined "
             + "for table "
             + obj.getClass()
             + " - no update possible");
   }
   SQLStatement stat = new SQLStatement(db);
   StatementBuilder buff = new StatementBuilder("DELETE FROM ");
   buff.append(db.getDialect().getTableName(schemaName, tableName));
   buff.resetCount();
   Object alias = ClassUtils.newObject(obj.getClass());
   Query<Object> query = Query.from(db, alias);
   boolean firstCondition = true;
   for (FieldDefinition field : fields) {
     if (field.isPrimaryKey) {
       Object aliasValue = field.getValue(alias);
       Object value = field.getValue(obj);
       if (!firstCondition) {
         query.addConditionToken(ConditionAndOr.AND);
       }
       firstCondition = false;
       query.addConditionToken(new Condition<Object>(aliasValue, value, CompareType.EQUAL));
     }
   }
   stat.setSQL(buff.toString());
   query.appendWhere(stat);
   StatementLogger.delete(stat.getSQL());
   stat.executeUpdate();
 }
コード例 #2
0
 void initSelectObject(SelectTable<T> table, Object obj, Map<Object, SelectColumn<T>> map) {
   for (FieldDefinition def : fields) {
     def.initWithNewObject(obj);
     SelectColumn<T> column = new SelectColumn<T>(table, def);
     map.put(def.getValue(obj), column);
   }
 }
コード例 #3
0
  private int readNestedPosition(String fieldName, FieldType type) throws IOException {
    String[] fieldNames = NESTED_FIELD_PATTERN.split(fieldName);
    if (fieldNames.length > 1) {
      FieldDefinition fd = null;
      DefaultPortableReader reader = this;

      for (int i = 0; i < fieldNames.length; i++) {
        fd = reader.cd.getField(fieldNames[i]);
        if (fd == null) {
          break;
        }
        if (i == fieldNames.length - 1) {
          break;
        }

        int pos = reader.readPosition(fd);
        in.position(pos);
        boolean isNull = in.readBoolean();
        if (isNull) {
          throw new NullPointerException("Parent field is null: " + fieldNames[i]);
        }
        reader = serializer.createReader(in, fd.getFactoryId(), fd.getClassId(), fd.getVersion());
      }
      if (fd == null) {
        throw throwUnknownFieldException(fieldName);
      }
      if (fd.getType() != type) {
        throw new HazelcastSerializationException("Not a '" + type + "' field: " + fieldName);
      }
      return reader.readPosition(fd);
    }
    throw throwUnknownFieldException(fieldName);
  }
コード例 #4
0
 public Portable[] readPortableArray(String fieldName) throws IOException {
   FieldDefinition fd = cd.getField(fieldName);
   if (fd == null) {
     throw throwUnknownFieldException(fieldName);
   }
   if (fd.getType() != FieldType.PORTABLE_ARRAY) {
     throw new HazelcastSerializationException("Not a Portable array field: " + fieldName);
   }
   final int currentPos = in.position();
   try {
     int pos = readPosition(fd);
     in.position(pos);
     final int len = in.readInt();
     final Portable[] portables = new Portable[len];
     if (len > 0) {
       final int offset = in.position();
       for (int i = 0; i < len; i++) {
         final int start = in.readInt(offset + i * 4);
         in.position(start);
         portables[i] =
             serializer.readAndInitialize(in, fd.getFactoryId(), fd.getClassId(), fd.getVersion());
       }
     }
     return portables;
   } finally {
     in.position(currentPos);
   }
 }
コード例 #5
0
 void readRow(Object item, ResultSet rs) {
   for (int i = 0; i < fields.size(); i++) {
     FieldDefinition def = fields.get(i);
     Object o = def.read(rs, i + 1);
     def.setValue(item, o);
   }
 }
コード例 #6
0
 /**
  * Define a primary key by the specified column names.
  *
  * @param columnNames the ordered list of column names
  */
 void setPrimaryKey(List<String> columnNames) {
   primaryKeyColumnNames = New.arrayList(columnNames);
   // set isPrimaryKey flag for all field definitions
   for (FieldDefinition fieldDefinition : fieldMap.values()) {
     fieldDefinition.isPrimaryKey =
         this.primaryKeyColumnNames.contains(fieldDefinition.columnName);
   }
 }
コード例 #7
0
 <Y, X> void copyAttributeValues(Query<Y> query, X to, X map) {
   for (FieldDefinition def : fields) {
     Object obj = def.getValue(map);
     SelectColumn<Y> col = query.getSelectColumn(obj);
     Object value = col.getCurrentValue();
     def.setValue(to, value);
   }
 }
コード例 #8
0
ファイル: ClassDefinition.java プロジェクト: Zillode/drools
 public FieldDefinition getFieldByAlias(String alias) {
   for (FactField factField : getFields()) {
     FieldDefinition def = (FieldDefinition) factField;
     if (def.resolveAlias().equals(alias)) {
       return def;
     }
   }
   return null;
 }
コード例 #9
0
 public void setMaxLength(Object column, int maxLength) {
   String columnName = getColumnName(column);
   for (FieldDefinition f : fields) {
     if (f.columnName.equals(columnName)) {
       f.maxLength = maxLength;
       break;
     }
   }
 }
コード例 #10
0
 <Y, X> void appendSelectList(SQLStatement stat, Query<Y> query, X x) {
   for (int i = 0; i < fields.size(); i++) {
     if (i > 0) {
       stat.appendSQL(", ");
     }
     FieldDefinition def = fields.get(i);
     Object obj = def.getValue(x);
     query.appendSQL(stat, obj);
   }
 }
コード例 #11
0
  public Widget createInstance() {
    AggregateField aggregateField = new AggregateField(this);

    Iterator fieldDefinitionIt = container.getWidgetDefinitions().iterator();
    while (fieldDefinitionIt.hasNext()) {
      FieldDefinition fieldDefinition = (FieldDefinition) fieldDefinitionIt.next();
      aggregateField.addField((Field) fieldDefinition.createInstance());
    }

    return aggregateField;
  }
コード例 #12
0
 private int readPosition(String fieldName, FieldType type) throws IOException {
   if (raw) {
     throw new HazelcastSerializationException(
         "Cannot read Portable fields after getRawDataInput() is called!");
   }
   FieldDefinition fd = cd.getField(fieldName);
   if (fd == null) {
     return readNestedPosition(fieldName, type);
   }
   if (fd.getType() != type) {
     throw new HazelcastSerializationException("Not a '" + type + "' field: " + fieldName);
   }
   return readPosition(fd);
 }
コード例 #13
0
  /** Return a platform independant definition of the database table. */
  public static TableDefinition tableDefinition(Session session) {
    TableDefinition definition = TypeTester.tableDefinition();
    FieldDefinition fieldDef;

    definition.setName("BOOLEANS");
    fieldDef = new FieldDefinition("BOOLEANV", Boolean.class);
    fieldDef.setShouldAllowNull(false);
    definition.addField(fieldDef);

    fieldDef = new FieldDefinition("BOOLEANC", Boolean.class);
    fieldDef.setShouldAllowNull(false);
    definition.addField(fieldDef);

    return definition;
  }
コード例 #14
0
  /** initialize this definition with the other, sort of like a copy constructor */
  public void initializeFrom(WidgetDefinition definition) throws Exception {
    super.initializeFrom(definition);

    if (definition instanceof AggregateFieldDefinition) {
      AggregateFieldDefinition other = (AggregateFieldDefinition) definition;

      this.combineExpr = other.combineExpr;
      this.splitRegexp = other.splitRegexp;
      this.splitPattern = other.splitPattern;
      this.splitFailMessage = other.splitFailMessage;

      Iterator defs = other.container.getWidgetDefinitions().iterator();
      while (defs.hasNext()) {
        container.addWidgetDefinition((WidgetDefinition) defs.next());
      }

      Collections.copy(this.splitMappings, other.splitMappings);

      Iterator fields = other.mappedFields.iterator();
      while (fields.hasNext()) {
        this.mappedFields.add(fields.next());
      }

    } else {
      throw new Exception(
          "Definition to inherit from is not of the right type! (at " + getLocation() + ")");
    }
  }
コード例 #15
0
ファイル: Ext.java プロジェクト: bfayette/touch4j
 public static void defineModel(String name, String... fields) {
   JsArray<FieldDefinition> fieldsDefinition = JsArray.createArray().cast();
   for (String s : fields) {
     fieldsDefinition.push(FieldDefinition.create(s));
   }
   createModel(name, fieldsDefinition);
 }
コード例 #16
0
 /** INTERNAL: Return the create type statement. */
 public Writer buildCreationWriter(AbstractSession session, Writer writer)
     throws ValidationException {
   try {
     writer.write("CREATE TYPE " + getFullName() + " AS OBJECT (");
     for (Enumeration fieldsEnum = getFields().elements(); fieldsEnum.hasMoreElements(); ) {
       FieldDefinition field = (FieldDefinition) fieldsEnum.nextElement();
       field.appendTypeString(writer, session);
       if (fieldsEnum.hasMoreElements()) {
         writer.write(", ");
       }
     }
     writer.write(")");
   } catch (IOException ioException) {
     throw ValidationException.fileError(ioException);
   }
   return writer;
 }
コード例 #17
0
  @Override
  public Void visitField(ClassDefinition classDefinition, FieldDefinition fieldDefinition) {
    // print annotations first
    for (AnnotationDefinition annotationDefinition : fieldDefinition.getAnnotations()) {
      visitAnnotation(fieldDefinition, annotationDefinition);
    }

    // print field declaration
    line()
        .addAll(fieldDefinition.getAccess())
        .add(fieldDefinition.getType().getJavaClassName())
        .add(fieldDefinition.getName())
        .add(";")
        .print();

    printLine();
    return null;
  }
コード例 #18
0
 private void registerClassDefinition(
     ClassDefinition cd, Map<Integer, ClassDefinition> classDefMap, boolean checkClassDefErrors) {
   for (int i = 0; i < cd.getFieldCount(); i++) {
     FieldDefinition fd = cd.get(i);
     if (fd.getType() == FieldType.PORTABLE || fd.getType() == FieldType.PORTABLE_ARRAY) {
       int classId = fd.getClassId();
       ClassDefinition nestedCd = classDefMap.get(classId);
       if (nestedCd != null) {
         ((ClassDefinitionImpl) cd).addClassDef(nestedCd);
         registerClassDefinition(nestedCd, classDefMap, checkClassDefErrors);
         serializationContext.registerClassDefinition(nestedCd);
       } else if (checkClassDefErrors) {
         throw new HazelcastSerializationException(
             "Could not find registered ClassDefinition for class-id: " + classId);
       }
     }
   }
   serializationContext.registerClassDefinition(cd);
 }
コード例 #19
0
  protected void buildFields(ClassWriter cw, EnumClassDefinition classDef) {
    FieldVisitor fv;
    for (FieldDefinition fld : classDef.getFieldsDefinitions()) {
      fv =
          cw.visitField(
              ACC_PRIVATE + ACC_FINAL,
              fld.getName(),
              BuildUtils.getTypeDescriptor(fld.getTypeName()),
              null,
              null);
      fv.visitEnd();
    }

    {
      fv =
          cw.visitField(
              ACC_PRIVATE + ACC_STATIC, "$context", "Lorg/mvel2/ParserContext;", null, null);
      fv.visitEnd();
    }
  }
コード例 #20
0
  public static TableDefinition buildREADONLYCLASSTable() {
    TableDefinition table = new TableDefinition();
    table.setName("CMP3_XML_READONLY");

    FieldDefinition fieldID = new FieldDefinition();
    fieldID.setName("ID");
    fieldID.setTypeName("NUMERIC");
    fieldID.setSize(15);
    fieldID.setSubSize(0);
    fieldID.setIsPrimaryKey(true);
    fieldID.setIsIdentity(true);
    fieldID.setUnique(false);
    fieldID.setShouldAllowNull(false);
    table.addField(fieldID);

    return table;
  }
コード例 #21
0
  protected void setupDefinition(Element widgetElement, FieldDefinition definition)
      throws Exception {
    super.setupDefinition(widgetElement, definition);

    // parse "@required"
    boolean required = DomHelper.getAttributeAsBoolean(widgetElement, "required", false);
    definition.setRequired(required);

    // parse "@length"
    int length = DomHelper.getAttributeAsInteger(widgetElement, "length", 7);
    ((CaptchaFieldDefinition) definition).setLength(length);
  }
コード例 #22
0
  public static TableDefinition buildWHEELRIMTable() {
    // CREATE TABLE JPA_OR_WHEEL_RIM (ID NUMBER(10) NOT NULL, PRIMARY KEY (ID))
    TableDefinition table = new TableDefinition();
    table.setName("JPA_OR_WHEEL_RIM");

    FieldDefinition fieldID = new FieldDefinition();
    fieldID.setName("ID");
    fieldID.setTypeName("NUMERIC");
    fieldID.setSize(10);
    fieldID.setSubSize(0);
    fieldID.setIsPrimaryKey(true);
    fieldID.setIsIdentity(true);
    fieldID.setShouldAllowNull(false);
    fieldID.setUnique(false);
    table.addField(fieldID);

    return table;
  }
コード例 #23
0
 public Portable readPortable(String fieldName) throws IOException {
   FieldDefinition fd = cd.getField(fieldName);
   if (fd == null) {
     throw throwUnknownFieldException(fieldName);
   }
   if (fd.getType() != FieldType.PORTABLE) {
     throw new HazelcastSerializationException("Not a Portable field: " + fieldName);
   }
   final int currentPos = in.position();
   try {
     int pos = readPosition(fd);
     in.position(pos);
     final boolean isNull = in.readBoolean();
     if (!isNull) {
       return serializer.readAndInitialize(
           in, fd.getFactoryId(), fd.getClassId(), fd.getVersion());
     }
     return null;
   } finally {
     in.position(currentPos);
   }
 }
コード例 #24
0
  public static TableDefinition buildCACHEABLE_TRUE_ENTITYTable() {
    TableDefinition table = new TableDefinition();
    table.setName("XML_CACHEABLE_TRUE");

    FieldDefinition fieldID = new FieldDefinition();
    fieldID.setName("ID");
    fieldID.setTypeName("NUMERIC");
    fieldID.setSize(15);
    fieldID.setShouldAllowNull(false);
    fieldID.setIsPrimaryKey(true);
    fieldID.setUnique(false);
    fieldID.setIsIdentity(true);
    table.addField(fieldID);

    return table;
  }
コード例 #25
0
  public TableDefinition buildUnderbossTable() {
    TableDefinition table = new TableDefinition();
    table.setName("JPA_UNDERBOSS");

    FieldDefinition fieldID = new FieldDefinition();
    fieldID.setName("ID");
    fieldID.setTypeName("NUMERIC");
    fieldID.setSize(15);
    fieldID.setIsPrimaryKey(true);
    fieldID.setIsIdentity(true);
    fieldID.setUnique(false);
    fieldID.setShouldAllowNull(false);
    // fieldID.setForeignKeyFieldName("JPA_MAFIOSO.ID");
    table.addField(fieldID);

    return table;
  }
コード例 #26
0
 /** Optionally truncates strings to the maximum length */
 private static Object getValue(Object obj, FieldDefinition field) {
   Object value = field.getValue(obj);
   if (field.trimString && field.maxLength > 0) {
     if (value instanceof String) {
       // clip strings
       String s = (String) value;
       if (s.length() > field.maxLength) {
         return s.substring(0, field.maxLength);
       }
       return s;
     }
     return value;
   }
   // standard behavior
   return value;
 }
コード例 #27
0
  /** checks completeness of this definition */
  public void checkCompleteness() throws IncompletenessException {
    super.checkCompleteness();

    if (this.container.size() == 0)
      throw new IncompletenessException("AggregateField doesn't have any child widgets!", this);

    if (this.combineExpr == null)
      throw new IncompletenessException("AggregateField requires a combine expression!", this);

    if (this.splitPattern == null)
      throw new IncompletenessException(
          "AggregateField requires a split regular expression!", this);

    if (this.splitMappings.size() == 0)
      throw new IncompletenessException(
          "AggregateField requires at least one group to field mapping!", this);

    // now check children's completeness
    List defs = container.getWidgetDefinitions();
    Iterator it = defs.iterator();
    while (it.hasNext()) {
      ((WidgetDefinition) it.next()).checkCompleteness();
    }
  }
コード例 #28
0
ファイル: Block.java プロジェクト: slimmilan/presto
 public Block putStaticField(ParameterizedType target, FieldDefinition field) {
   checkArgument(field.getAccess().contains(STATIC), "Field is not static: %s", field);
   putStaticField(target, field.getName(), field.getType());
   return this;
 }
コード例 #29
0
ファイル: Block.java プロジェクト: slimmilan/presto
 public Block putStaticField(FieldDefinition field) {
   putStaticField(field.getDeclaringClass().getType(), field.getName(), field.getType());
   return this;
 }
コード例 #30
0
ファイル: Block.java プロジェクト: slimmilan/presto
 public Block getStaticField(ParameterizedType target, FieldDefinition field) {
   nodes.add(getStaticInstruction(target, field.getName(), field.getType()));
   return this;
 }