dflorey     2004/10/08 03:44:57

  Added:       contract/src/examples/org/apache/commons/contract/example
                        SpeedCalculator.java SimpleMain.java
  Removed:     contract/src/java/org/apache/commons/contract/example
                        SpeedCalculator.java SimpleMain.java
  Log:
  Moven examples from main jar to examples jar
  
  Revision  Changes    Path
  1.1                  
jakarta-commons-sandbox/contract/src/examples/org/apache/commons/contract/example/SpeedCalculator.java
  
  Index: SpeedCalculator.java
  ===================================================================
  /*
   * 
   * ====================================================================
   * 
   * Copyright 2004 The Apache Software Foundation
   * 
   * 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.apache.commons.contract.example;
  
  import java.util.Map;
  
  import org.apache.commons.contract.Context;
  import org.apache.commons.contract.Processor;
  import org.apache.commons.contract.Result;
  import org.apache.commons.contract.constraints.NumberConstraints;
  import org.apache.commons.contract.constraints.StringConstraints;
  import org.apache.commons.contract.descriptor.ParameterDescriptor;
  import org.apache.commons.contract.descriptor.ResultDescriptor;
  import org.apache.commons.contract.descriptor.ResultEntryDescriptor;
  import org.apache.commons.contract.descriptor.StateDescriptor;
  import org.apache.commons.contract.i18n.ParameterMessage;
  import org.apache.commons.i18n.LocalizedMessage;
  
  public class SpeedCalculator implements Processor {
      public final static String SPEED = "speed";
  
      private final static String DISTANCE = "distance";
      private final static String TIME = "time";
      private final static String UNIT = "unit";
      private final static String SECONDS = "s";
      private final static String MINUTES = "min";
      private final static String HOURS = "h";
  
      ParameterDescriptor[] parameterDescriptors = new ParameterDescriptor[]{
              new ParameterDescriptor(DISTANCE, new 
ParameterMessage("computeSpeed/parameter/distance"), 
                      new NumberConstraints(
                      new Integer(0), null, true)),
              new ParameterDescriptor(UNIT, new 
ParameterMessage("computeSpeed/parameter/unit"), 
                      new StringConstraints(
                      new String[]{SECONDS, MINUTES, HOURS})),
              new ParameterDescriptor(TIME, new 
ParameterMessage("computeSpeed/parameter/time"), 
                      NumberConstraints.POSITIVE)};
      
      ResultDescriptor[] resultDescriptors = new ResultDescriptor[]{new 
ResultDescriptor(
              StateDescriptor.OK_DESCRIPTOR,
              new ResultEntryDescriptor[]{new ResultEntryDescriptor(SPEED,
                      new LocalizedMessage("computeSpeed/result/speed"),
                      new NumberConstraints(new Float(0.1), new 
Integer(Integer.MAX_VALUE)))})};
      
      /**
       * Computes the speed in meter per second from the given distance and time.
       * The time can be given in seconds, minutes or hours, depending on the
       * content of timeUnit.
       */
      public Result process(Map parameters, Context context) {
          float distance = ((Number)parameters.get(DISTANCE)).floatValue();
          float time = ((Number)parameters.get(TIME)).floatValue();
          String timeUnit = (String)parameters.get(UNIT);
          float speed;
          if (timeUnit.equals("s")) speed = distance / time;
          else if (timeUnit.equals("min")) speed = distance*60 / time;
          else speed = distance*3600 / time;
          return new Result(StateDescriptor.OK, SPEED, new Float(speed));
      }
  
      public ParameterDescriptor[] getParameterDescriptors() {
          return parameterDescriptors;
      }
  
      public ResultDescriptor[] getResultDescriptors() {
          return resultDescriptors;
      }
  }
  
  
  1.1                  
jakarta-commons-sandbox/contract/src/examples/org/apache/commons/contract/example/SimpleMain.java
  
  Index: SimpleMain.java
  ===================================================================
  /*
  *
  * ====================================================================
  *
  * Copyright 2004 The Apache Software Foundation 
  *
  * 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.apache.commons.contract.example;
  
  import org.apache.commons.contract.Result;
  import org.apache.commons.contract.util.InteractiveMainWrapper;
  import org.apache.commons.contract.util.MainWrapper;
  import org.apache.commons.i18n.MessageManager;
  
  public class SimpleMain {
      public static void main(String[] args) {
          MessageManager.install("contract/example", 
Thread.currentThread().getContextClassLoader().getResourceAsStream("example.xml"));
          Result result = InteractiveMainWrapper.main(args, new SpeedCalculator());
          if ( result != null ) {
              System.out.println("Speed: 
"+result.getResultEntries().get(SpeedCalculator.SPEED));
          }
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to