Package com.tll.model.schema

Examples of com.tll.model.schema.PropertyMetadata


   *        standard entity name property will be added.
   * @return the stubbed model
   */
  public static Model stubModel(TestEntityType type, Integer version, boolean timestamping, String name) {
    final Model m = new Model(type);
    m.set(new StringPropertyValue(Model.ID_PROPERTY, new PropertyMetadata(PropertyType.STRING, false, true, 10),
        Integer.toString(++nextUniqueId)));
    m.set(new IntPropertyValue(Model.VERSION_PROPERTY, version));
    if(name != null) {
      m.set(new StringPropertyValue(Model.NAME_PROPERTY, new PropertyMetadata(PropertyType.STRING, false, true, 32),
          name));
    }
    m.set(new DatePropertyValue(Model.DATE_CREATED_PROPERTY, new PropertyMetadata(PropertyType.DATE, true, true, 32),
        new Date()));
    m.set(new DatePropertyValue(Model.DATE_MODIFIED_PROPERTY, new PropertyMetadata(PropertyType.DATE, true, true, 32),
        new Date()));
    return m;
  }
View Full Code Here


   * @return new instance
   */
  private static Model stubAccount(Model parentAccount, TestEntityType accountType, int num) {
    final Model m = stubModel(accountType, null, true, accountType.descriptor() + " " + num);
    m
    .set(new EnumPropertyValue("status", new PropertyMetadata(PropertyType.ENUM, false, true, 16),
        AccountStatus.OPEN));
    m.set(new BooleanPropertyValue("persistPymntInfo", new PropertyMetadata(PropertyType.BOOL, false, true, -1),
        Boolean.TRUE));
    m.set(new StringPropertyValue("billingModel", new PropertyMetadata(PropertyType.STRING, false, true, 32),
    "a billing model"));
    m.set(new StringPropertyValue("billingCycle", new PropertyMetadata(PropertyType.STRING, false, true, 32),
    "a billing cycle"));
    m
    .set(new DatePropertyValue("dateLastCharged", new PropertyMetadata(PropertyType.DATE, false, true, 32),
        new Date()));
    m
    .set(new DatePropertyValue("nextChargeDate", new PropertyMetadata(PropertyType.DATE, false, true, 32),
        new Date()));
    m.set(new DatePropertyValue("dateCancelled", new PropertyMetadata(PropertyType.DATE, false, true, 32), new Date()));
    m.set(new RelatedOneProperty(TestEntityType.CURRENCY, stubCurrency(), "currency", true));
    m.set(new RelatedOneProperty(TestEntityType.PAYMENT_INFO, stubPaymentInfo(), "paymentInfo", false));
    m.set(new RelatedOneProperty(TestEntityType.ACCOUNT, parentAccount, "parent", true));
    return m;
  }
View Full Code Here

   * @param num
   * @return new instance
   */
  public static Model stubAccountAddress(Model account, Model address, int num) {
    final Model m = stubModel(TestEntityType.ACCOUNT_ADDRESS, null, true, ("Adrs " + num));
    m.set(new EnumPropertyValue("type", new PropertyMetadata(PropertyType.ENUM, false, true, 8),
        AddressType.values()[num - 1]));
    m.set(new RelatedOneProperty(TestEntityType.ACCOUNT, account, "account", true));
    m.set(new RelatedOneProperty(TestEntityType.ADDRESS, address, "address", false));
    return m;
  }
View Full Code Here

   * @param num
   * @return new instance
   */
  public static Model stubAddress(int num) {
    final Model address = stubModel(TestEntityType.ADDRESS, null, false, null);
    address.set(new StringPropertyValue("emailAddress", new PropertyMetadata(PropertyType.STRING, false, false, 32),
        "email" + num + "@domain.com"));
    address.set(new StringPropertyValue("firstName", new PropertyMetadata(PropertyType.STRING, false, false, 32),
        "firstname " + num));
    address.set(new StringPropertyValue("lastName", new PropertyMetadata(PropertyType.STRING, false, true, 32),
        "lastname " + num));
    address.set(new CharacterPropertyValue("mi", new PropertyMetadata(PropertyType.CHAR, false, false, 1), 'm'));
    address.set(new StringPropertyValue("address1", new PropertyMetadata(PropertyType.STRING, false, true, 32),
        "address1 " + num));
    address.set(new StringPropertyValue("address2", new PropertyMetadata(PropertyType.STRING, false, false, 32),
        "address2 " + num));
    address.set(new StringPropertyValue("city", new PropertyMetadata(PropertyType.STRING, false, true, 32), "city "
        + num));
    address.set(new StringPropertyValue("province", new PropertyMetadata(PropertyType.STRING, false, true, 32),
        "province " + num));
    address.set(new StringPropertyValue("postalCode", new PropertyMetadata(PropertyType.STRING, false, true, 32),
        "zip " + num));
    address.set(new StringPropertyValue("country", new PropertyMetadata(PropertyType.STRING, false, true, 32),
        "country " + num));

    // test boolean prop types..
    address.set(new BooleanPropertyValue("boolean", new PropertyMetadata(PropertyType.BOOL, false, true, -1),
        Boolean.TRUE));

    // test float prop types..
    address.set(new DoublePropertyValue("float", new PropertyMetadata(PropertyType.FLOAT, false, true, 8), 33.33d));

    // test double prop types..
    address.set(new DoublePropertyValue("double", new PropertyMetadata(PropertyType.DOUBLE, false, true, 8), 44.44d));

    return address;
  }
View Full Code Here

   * Stubs a currency model
   * @return new instance
   */
  public static Model stubCurrency() {
    final Model m = stubModel(TestEntityType.CURRENCY, null, false, null);
    m.set(new StringPropertyValue("iso4217", new PropertyMetadata(PropertyType.STRING, false, true, 8), "usd"));
    m.set(new StringPropertyValue("symbol", new PropertyMetadata(PropertyType.STRING, false, true, 8), "$"));
    m.set(new DoublePropertyValue("usdExchangeRage", new PropertyMetadata(PropertyType.DOUBLE, false, true, -1), 1d));
    return m;
  }
View Full Code Here

   * Stubs payment info
   * @return new Model representing payment info
   */
  public static Model stubPaymentInfo() {
    final Model m = stubModel(TestEntityType.PAYMENT_INFO, null, false, null);
    m.set(new StringPropertyValue("paymentData_bankAccountNo", new PropertyMetadata(PropertyType.STRING, false, false,
        16), "0005543"));
    m.set(new StringPropertyValue("paymentData_bankName", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "bank name"));
    m.set(new StringPropertyValue("paymentData_bankRoutingNo", new PropertyMetadata(PropertyType.STRING, false, false,
        16), "77777"));
    m.set(new EnumPropertyValue("paymentData_ccType", new PropertyMetadata(PropertyType.ENUM, false, false, 16),
        CreditCardType.VISA));
    m.set(new StringPropertyValue("paymentData_ccNum", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "4111111111111111"));
    m.set(new StringPropertyValue("paymentData_ccCvv2", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "834"));
    m.set(new IntPropertyValue("paymentData_ccExpMonth", new PropertyMetadata(PropertyType.INT, false, false, 16), 8));
    m
    .set(new IntPropertyValue("paymentData_ccExpYear", new PropertyMetadata(PropertyType.INT, false, false, 16),
        2012));
    m.set(new StringPropertyValue("paymentData_ccName", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "cc name"));
    m.set(new StringPropertyValue("paymentData_ccAddress1",
        new PropertyMetadata(PropertyType.STRING, false, false, 16), "88 Broadway"));
    m.set(new StringPropertyValue("paymentData_ccAddress2",
        new PropertyMetadata(PropertyType.STRING, false, false, 16), "#32"));
    m.set(new StringPropertyValue("paymentData_ccCity", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "Sacramento"));
    m.set(new StringPropertyValue("paymentData_ccState", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "CA"));
    m.set(new StringPropertyValue("paymentData_ccZip", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "99885"));
    m.set(new StringPropertyValue("paymentData_ccCountry", new PropertyMetadata(PropertyType.STRING, false, false, 16),
    "us"));

    return m;
  }
View Full Code Here

          //Log.debug("Allowing model ref [" + rootRelPath + "]");
          return true;
        }
      }
      if(srcProp instanceof IPropertyValue) {
        final PropertyMetadata metadata = ((IPropertyValue) srcProp).getMetadata();
        if(metadata != null && metadata.isManaged()) return false;
      }
      return super.evaluateProperty(srcProp, rootRelPath);
    }
View Full Code Here

    }
  }

  public final void applyPropertyMetadata(IPropertyMetadataProvider provider, boolean isNewModelData) {
    // Log.debug("AbstractField.applyPropertyMetadata() for " + toString());
    final PropertyMetadata metadata = provider.getPropertyMetadata(getPropertyName());
    if(metadata == null) {
      Log.warn("No property metadata found for field: " + toString());
    }
    else {
      // requiredness
      setRequired(metadata.isRequired() && !metadata.isManaged());

      // maxlength
      if(this instanceof IHasMaxLength) {
        final int maxlen = metadata.getMaxLen();
        ((IHasMaxLength) this).setMaxLen(maxlen);
      }

      final GlobalFormat format = (this instanceof IHasFormat) ? ((IHasFormat) this).getFormat() : null;

      // set the type coercion validator
      switch(metadata.getPropertyType()) {
      case STRING:
      case ENUM:
        // no type coercion validator needed
        break;

      case BOOL:
        addValidator(BooleanValidator.INSTANCE);
        break;

      case DATE:
        addValidator(DateValidator.get(format == null ? GlobalFormat.DATE : format));
        break;

      case INT:
        addValidator(IntegerValidator.INSTANCE);
        break;

      case FLOAT:
      case DOUBLE:
        addValidator(new DecimalValidator(Fmt.getDecimalFormat(format == null ? GlobalFormat.DECIMAL : format)));
        break;

      case CHAR:
        addValidator(CharacterValidator.INSTANCE);
        break;

      case LONG:
        // TODO handle - intentional fall through
      case STRING_MAP:
        // TODO handle string map type coercion - intentional fall through
      default:
        throw new IllegalStateException("Unhandled property type: " + metadata.getPropertyType().name());
      }
    }
    // apply model new flag
    validateIncrementally(!isNewModelData);
  }
View Full Code Here

   * Manually add a change by model property ref
   * @param mp the model property ref
   */
  public void addChange(IModelProperty mp) {
    if(mp instanceof IPropertyValue) {
      final PropertyMetadata pm = ((IPropertyValue)mp).getMetadata();
      if(pm != null && pm.isManaged()) return// don't track managed props
    }
    if(propRefChanges == null) {
      propRefChanges = new HashSet<IModelProperty>();
    }
    propRefChanges.add(mp);
View Full Code Here

      catch(final RuntimeException re) {
        log.debug("Skipping entity prop: " + pname + " due to: " + re.getMessage());
        continue;
      }

      final PropertyMetadata pdata = generatePropertyData(entityClass, pname);

      IModelProperty prop = createValueProperty(ptype, pname, obj, pdata);

      if(prop == null) {
        // related one
View Full Code Here

TOP

Related Classes of com.tll.model.schema.PropertyMetadata

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.