Package org.springmodules.samples.jsr94.services

Source Code of org.springmodules.samples.jsr94.services.CarsServiceImpl

/*
* Copyright 2002-2004 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.springmodules.samples.jsr94.services;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.rules.InvalidRuleSessionException;
import javax.rules.StatefulRuleSession;
import javax.rules.StatelessRuleSession;

import org.springmodules.jsr94.core.Jsr94Template;
import org.springmodules.jsr94.support.StatefulRuleSessionCallback;
import org.springmodules.jsr94.support.StatelessRuleSessionCallback;
import org.springmodules.samples.jsr94.daos.CarsDAO;
import org.springmodules.samples.jsr94.model.Car;

/**
* Service implementation to get the list of cars and test the
* JSR94 support in different scenarios
*
* @author Thierry Templier
*/
public class CarsServiceImpl implements CarsService {
  public final static String CARS_RULE_URI="cars";

  private Jsr94Template template;
  private CarsDAO carsDAO;

  private void showListCars(List cars) {
    for(Iterator i=cars.iterator();i.hasNext();) {
      Object o=i.next();
      System.out.println("## o = "+o+" - "+Car.class.toString());
      Car car=(Car)o;
      System.out.println(" - goodBargain = "+car.isGoodBargain());
    }
  }
 
  public void testStateless() {
    final List cars=carsDAO.getCars();
    getTemplate().executeStateless("cars",null,new StatelessRuleSessionCallback() {
      public Object execute(StatelessRuleSession session) throws InvalidRuleSessionException, RemoteException {
        return session.executeRules(cars);
      }
    });
    showListCars(cars);
  }

  public void testStateful() {
    final List cars=carsDAO.getCars();
    List modifiedCars=(List)getTemplate().executeStateful(CARS_RULE_URI,null,new StatefulRuleSessionCallback() {
      public Object execute(StatefulRuleSession statefulRuleSession) throws InvalidRuleSessionException,RemoteException {
        statefulRuleSession.addObjects(cars);
        statefulRuleSession.executeRules();
        return statefulRuleSession.getObjects();
      }
    });
    showListCars(modifiedCars);
  }

  /**
   * @see org.springmodules.samples.jrules.services.CarsService#getGoodBargainCars()
   */
  public List getGoodBargainCars() {
    final List cars=carsDAO.getCars();
    getTemplate().executeStateless(CARS_RULE_URI,null,new StatelessRuleSessionCallback() {
      public Object execute(StatelessRuleSession session) throws InvalidRuleSessionException, RemoteException {
        return session.executeRules(cars);
      }
    });
    List goodBargainCars=new ArrayList();
    for(Iterator i=cars.iterator();i.hasNext();) {
      Car car=(Car)i.next();
      if( car.isGoodBargain() )
        goodBargainCars.add(car);
    }
    return goodBargainCars;
  }

  public Jsr94Template getTemplate() {
    return template;
  }

  public void setTemplate(Jsr94Template template) {
    this.template = template;
  }

  public CarsDAO getCarsDAO() {
    return carsDAO;
  }

  public void setCarsDAO(CarsDAO carsDAO) {
    this.carsDAO = carsDAO;
  }

}
TOP

Related Classes of org.springmodules.samples.jsr94.services.CarsServiceImpl

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.