Package org.openntf.domino.schema.impl

Source Code of org.openntf.domino.schema.impl.ItemValidation

/**
*
*/
package org.openntf.domino.schema.impl;

import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.regex.Pattern;

import org.openntf.domino.ext.Formula;
import org.openntf.domino.schema.IDatabaseSchema;
import org.openntf.domino.schema.IDominoType;
import org.openntf.domino.schema.IItemDefinition;
import org.openntf.domino.schema.IItemValidation;
import org.openntf.domino.schema.exceptions.ItemException;

public class ItemValidation implements IItemValidation, Externalizable {
  private boolean required_;
  private boolean unique_;
  private Formula uniqueFormula_;
  private Pattern expression_;
  private long maxValue_;
  private long minValue_;
  private int maxMembers_;
  private int minMembers_;
  private transient ItemDefinition definition_;

  public ItemDefinition getDefinition() {
    return definition_;
  }

  public void setDefinition(final ItemDefinition definition) {
    definition_ = definition;
  }

  public Pattern getPattern() {
    return expression_;
  }

  public void setRegex(final String expression) {
    expression_ = Pattern.compile(expression);
  }

  public boolean isRequired() {
    return required_;
  }

  public void setRequired(final boolean required) {
    required_ = required;
  }

  public boolean isUnique() {
    return unique_;
  }

  public void setUnique(final boolean unique) {
    unique_ = unique;
  }

  public Formula getUniqueFormula() {
    return uniqueFormula_;
  }

  public void setUniqueFormula(final Formula uniqueFormula) {
    uniqueFormula_ = uniqueFormula;
  }

  public long getMaxValue() {
    return maxValue_;
  }

  public void setMaxValue(final long maxValue) {
    maxValue_ = maxValue;
  }

  public long getMinValue() {
    return minValue_;
  }

  public void setMinValue(final long minValue) {
    minValue_ = minValue;
  }

  public int getMaxMembers() {
    return maxMembers_;
  }

  public void setMaxMembers(final int maxMembers) {
    maxMembers_ = maxMembers;
  }

  public int getMinMembers() {
    return minMembers_;
  }

  public void setMinMembers(final int minMembers) {
    minMembers_ = minMembers;
  }

  private Class<? extends IDominoType> getItemType() {
    return getDefinition().getType();
  }

  public boolean validateItem(final org.openntf.domino.Item item) throws ItemException {
    boolean result = true;
    Class<? extends IDominoType> clazz = getItemType();
    IItemDefinition definition = getDefinition();
    IDatabaseSchema schema = definition.getParent();

    IDominoType type = schema.getTypeDefinition(clazz);
    type.validateItem(item);
    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see java.io.Externalizable#readExternal(java.io.ObjectInput)
   */
  @Override
  public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
    required_ = in.readBoolean();
    unique_ = in.readBoolean();
    maxValue_ = in.readLong();
    minValue_ = in.readLong();
    maxMembers_ = in.readInt();
    minMembers_ = in.readInt();
    uniqueFormula_ = (Formula) in.readObject();
    expression_ = (Pattern) in.readObject();
  }

  /*
   * (non-Javadoc)
   *
   * @see java.io.Externalizable#writeExternal(java.io.ObjectOutput)
   */
  @Override
  public void writeExternal(final ObjectOutput out) throws IOException {
    out.writeBoolean(required_);
    out.writeBoolean(unique_);
    out.writeLong(maxValue_);
    out.writeLong(minValue_);
    out.writeInt(maxMembers_);
    out.writeInt(minMembers_);
    out.writeObject(uniqueFormula_);
    out.writeObject(expression_);
  }

}
TOP

Related Classes of org.openntf.domino.schema.impl.ItemValidation

TOP
Copyright © 2018 www.massapi.com. 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.