Package org.dmd.dmv.shared.extended.rulesdmo

Source Code of org.dmd.dmv.shared.extended.rulesdmo.CheckAttributesBasedOnValueRule

package org.dmd.dmv.shared.extended.rulesdmo;

import java.util.Iterator;

import org.dmd.dmc.DmcAttribute;
import org.dmd.dmc.DmcAttributeInfo;
import org.dmd.dmc.DmcObject;
import org.dmd.dmc.DmcOmni;
import org.dmd.dmc.rules.DmcRuleException;
import org.dmd.dmc.rules.DmcRuleExceptionSet;
import org.dmd.dms.generated.types.AttributeDefinitionREF;
import org.dmd.dmv.shared.generated.dmo.CheckAttributesBasedOnValueRuleDataDMO;
import org.dmd.dmv.shared.generated.rulesdmo.CheckAttributesBasedOnValueRuleBaseImpl;

public class CheckAttributesBasedOnValueRule extends CheckAttributesBasedOnValueRuleBaseImpl {

  public CheckAttributesBasedOnValueRule(){
   
  }
 
  public CheckAttributesBasedOnValueRule(CheckAttributesBasedOnValueRuleDataDMO dmo) {
    super(dmo);
  }

  @Override
  public void execute(DmcObject obj) throws DmcRuleExceptionSet {
    DmcRuleExceptionSet rc = null;
   
    DmcAttribute<?>  boa = obj.get(ruleDMO.getBasedOnAttribute().getObjectName().getNameString());
    if (boa != null){
      String value = boa.getSV().toString();
     
      if (ruleDMO.basedOnValueContains(value)){
        if (ruleDMO.getExcludeThisAttributeSize() > 0){
          Iterator<AttributeDefinitionREF> refs = ruleDMO.getExcludeThisAttributeREFs();
          while(refs.hasNext()){
            DmcAttributeInfo ai = DmcOmni.instance().getAttributeInfo(refs.next().getObjectName().getNameString());
            if (obj.get(ai) != null){
              if (rc == null)
                rc = new DmcRuleExceptionSet();
              rc.add(new DmcRuleException(ruleDMO.getRuleTitle() + "\nCan't have: " + ai.name, this));
            }
          }
        }
        if (ruleDMO.getIncludeThisAttributeSize() > 0){
          Iterator<AttributeDefinitionREF> refs = ruleDMO.getIncludeThisAttributeREFs();
          while(refs.hasNext()){
            DmcAttributeInfo ai = DmcOmni.instance().getAttributeInfo(refs.next().getObjectName().getNameString());
            if (obj.get(ai) == null){
              if (rc == null)
                rc = new DmcRuleExceptionSet();
              rc.add(new DmcRuleException(ruleDMO.getRuleTitle() + "\nMust have: " + ai.name, this));
            }
          }
         
        }
      }
    }
   
    if (rc != null)
      throw(rc);
  }

}
TOP

Related Classes of org.dmd.dmv.shared.extended.rulesdmo.CheckAttributesBasedOnValueRule

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.