Package org.springmodules.jsr94.rulesource

Source Code of org.springmodules.jsr94.rulesource.DefaultRuleSource

/**
*
*/

package org.springmodules.jsr94.rulesource;

import java.io.IOException;
import java.rmi.RemoteException;
import java.util.Map;

import javax.rules.admin.RuleExecutionSet;
import javax.rules.admin.RuleExecutionSetCreateException;
import javax.rules.admin.RuleExecutionSetRegisterException;

import org.springframework.core.io.Resource;

/**
* This class allows a session to be created from rules loaded from a given Resource.
*
* @author janm
*/
public class DefaultRuleSource extends AbstractRuleSource {

  /**
   * The source
   */
  private Resource source;

  /**
   * The bindUri
   */
  private String bindUri;

  /**
     * Local Rule execution set provider properties -- passed to the getLocalRuleExecutionSetProvider method.
     * This field can be null.
     *
     * @see javax.rules.admin.RuleAdministrator#getLocalRuleExecutionSetProvider(java.util.Map)
     */
  private Map providerProperties;

  /**
     * Local ruleset properties -- passed to the createRuleExecutionSet method
     * This field can be null.
     *
     * @see javax.rules.admin.LocalRuleExecutionSetProvider#createRuleExecutionSet(java.io.InputStream, java.util.Map)
     */
  private Map rulesetProperties;

  /**
     * Rule execution set registration properties -- passed to the registerRuleExecutionSet method
     * This field can be null.
     *
     * @see javax.rules.admin.RuleAdministrator#registerRuleExecutionSet(java.lang.String, javax.rules.admin.RuleExecutionSet, java.util.Map)
     */
  private Map registrationProperties;

  /* (non-Javadoc)
   * @see org.springmodules.jsr94.support.AbstractRuleSource#registerRuleExecutionSets()
   */
  protected void registerRuleExecutionSets() throws RuleExecutionSetCreateException, RemoteException, IOException, RuleExecutionSetRegisterException {
    RuleExecutionSet ruleExecutionSet = ruleAdministrator.getLocalRuleExecutionSetProvider(providerProperties).createRuleExecutionSet(source.getInputStream(), rulesetProperties);
    if (bindUri == null) {
      logger.info("Using RuleExecutionSet().getName() as bindUri");
      bindUri = ruleExecutionSet.getName();
    }
    ruleAdministrator.registerRuleExecutionSet(bindUri, ruleExecutionSet, registrationProperties);
  }

  /* (non-Javadoc)
   * @see org.springmodules.jsr94.support.AbstractRuleSource#initRuleSource()
   */
  protected void initRuleSource() throws Exception {
    if (source == null) throw new IllegalArgumentException("Must set source on " + getClass().getName());

  }

  /**
     * Sets new value for field bindUri
     *
     * @param bindUri The bindUri to set.
     */
  public final void setBindUri(String bindUri) {
    this.bindUri = bindUri;
  }

  /**
     * Sets new value for field source
     *
     * @param source The source to set.
     */
  public final void setSource(Resource source) {
    this.source = source;
  }

  /**
     * Sets new value for field providerProperties
     *
     * @param providerProperties The providerProperties to set.
     */
  public final void setProviderProperties(Map providerProperties) {
    this.providerProperties = providerProperties;
  }

  /**
     * Sets new value for field registrationProperties
     *
     * @param registrationProperties The registrationProperties to set.
     */
  public final void setRegistrationProperties(Map registrationProperties) {
    this.registrationProperties = registrationProperties;
  }

  /**
   * Sets new value for field rulesetProperties
   * @param rulesetProperties The rulesetProperties to set.
   */
  public final void setRulesetProperties(Map rulesetProperties) {
    this.rulesetProperties = rulesetProperties;
  }

}
TOP

Related Classes of org.springmodules.jsr94.rulesource.DefaultRuleSource

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.