X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.application%2Fsrc%2Forg%2Fsimantics%2Fapplication%2Farguments%2FIArgumentFactory.java;h=856d604fe97c8951a56a21a603464a5e2cc48952;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=df854bb3436f35f9ae7ada64178e342f68a4c019;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.application/src/org/simantics/application/arguments/IArgumentFactory.java b/bundles/org.simantics.application/src/org/simantics/application/arguments/IArgumentFactory.java index df854bb34..856d604fe 100644 --- a/bundles/org.simantics.application/src/org/simantics/application/arguments/IArgumentFactory.java +++ b/bundles/org.simantics.application/src/org/simantics/application/arguments/IArgumentFactory.java @@ -1,202 +1,202 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.application.arguments; - -import java.util.ListIterator; - -/** - * @author Tuukka Lehtonen - * - * @param - */ -public interface IArgumentFactory { - - String getArgument(); - - IArgument parse(String arg, ListIterator tail); - - abstract class ArgumentFactory implements IArgumentFactory { - String arg; - protected IArgumentValidator validator; - public ArgumentFactory(String arg) { - this(arg, null); - } - public ArgumentFactory(String arg, IArgumentValidator validator) { - this.arg = arg; - this.validator = validator; - } - public String getArgument() { - return arg; - } - protected IArgumentValidator getValidator() { - return validator; - } - } - - abstract class Argument implements IArgument { - String key; - - public Argument(String key) { - assert key != null; - this.key = key; - } - - @Override - public String getArgument() { - return key; - } - - public abstract T getValue(); - - @Override - public String toString() { - return "(" + getValue().getClass().getSimpleName() + ") " + getValue().toString(); - } - } - - class BooleanArgument extends Argument { - Boolean value; - public BooleanArgument(String key, Boolean value) { - super(key); - this.value = value; - } - public Boolean getValue() { - return value; - } - }; - - class StringArgument extends Argument { - String value; - public StringArgument(String key, String value) { - super(key); - this.value = value; - } - public String getValue() { - return value; - } - }; - - class IntegerArgument extends Argument { - Integer value; - public IntegerArgument(String key, Integer value) { - super(key); - this.value = value; - } - public Integer getValue() { - return value; - } - }; - - class LongArgument extends Argument { - Long value; - public LongArgument(String key, Long value) { - super(key); - this.value = value; - } - public Long getValue() { - return value; - } - }; - - - class StringArgumentFactory extends ArgumentFactory { - public StringArgumentFactory(String key) { - super(key); - } - public StringArgumentFactory(String key, IArgumentValidator validator) { - super(key, validator); - } - @Override - public IArgument parse(String key, ListIterator tail) { - if (getArgument().equalsIgnoreCase(key)) { - if (tail.hasNext()) { - String next = tail.next(); - IArgumentValidator validator = getValidator(); - if(validator != null) { - String valid = validator.isValid(next); - if (valid != null) { - tail.previous(); - throw new IllegalArgumentException(valid); - } - } - return new StringArgument(getArgument(), next); - } - } - return null; - } - } - - class IntegerArgumentFactory extends ArgumentFactory { - private Integer lowLimit; - private Integer highLimit; - public IntegerArgumentFactory(String key) { - this(key, null, null); - } - public IntegerArgumentFactory(String key, Integer lowLimit, Integer highLimit) { - super(key); - this.lowLimit = lowLimit; - this.highLimit = highLimit; - } - @Override - public IArgument parse(String key, ListIterator tail) { - if (getArgument().equalsIgnoreCase(key)) { - if (tail.hasNext()) { - try { - Integer l = Integer.valueOf(tail.next()); - if (lowLimit != null && lowLimit > l) - throw new IllegalArgumentException("value is less than low limit, " + l + " < " + lowLimit); - if (highLimit != null && highLimit < l) - throw new IllegalArgumentException("value is greater than high limit, " + l + " > " + highLimit); - return new IntegerArgument(getArgument(), l); - } catch (NumberFormatException e) { - throw new IllegalArgumentException(e); - } - } - } - return null; - } - } - - class LongArgumentFactory extends ArgumentFactory { - public LongArgumentFactory(String key) { - super(key); - } - @Override - public IArgument parse(String key, ListIterator tail) { - if (getArgument().equalsIgnoreCase(key)) { - if (tail.hasNext()) { - try { - Long l = Long.valueOf(tail.next()); - return new LongArgument(getArgument(), l); - } catch (NumberFormatException e) { - throw new IllegalArgumentException(e); - } - } - } - return null; - } - } - - class NoValueArgumentFactory extends ArgumentFactory { - public NoValueArgumentFactory(String key) { - super(key); - } - @Override - public IArgument parse(String key, ListIterator tail) { - if (getArgument().equalsIgnoreCase(key)) { - return new BooleanArgument(getArgument(), Boolean.TRUE); - } - return null; - } - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.application.arguments; + +import java.util.ListIterator; + +/** + * @author Tuukka Lehtonen + * + * @param + */ +public interface IArgumentFactory { + + String getArgument(); + + IArgument parse(String arg, ListIterator tail); + + abstract class ArgumentFactory implements IArgumentFactory { + String arg; + protected IArgumentValidator validator; + public ArgumentFactory(String arg) { + this(arg, null); + } + public ArgumentFactory(String arg, IArgumentValidator validator) { + this.arg = arg; + this.validator = validator; + } + public String getArgument() { + return arg; + } + protected IArgumentValidator getValidator() { + return validator; + } + } + + abstract class Argument implements IArgument { + String key; + + public Argument(String key) { + assert key != null; + this.key = key; + } + + @Override + public String getArgument() { + return key; + } + + public abstract T getValue(); + + @Override + public String toString() { + return "(" + getValue().getClass().getSimpleName() + ") " + getValue().toString(); + } + } + + class BooleanArgument extends Argument { + Boolean value; + public BooleanArgument(String key, Boolean value) { + super(key); + this.value = value; + } + public Boolean getValue() { + return value; + } + }; + + class StringArgument extends Argument { + String value; + public StringArgument(String key, String value) { + super(key); + this.value = value; + } + public String getValue() { + return value; + } + }; + + class IntegerArgument extends Argument { + Integer value; + public IntegerArgument(String key, Integer value) { + super(key); + this.value = value; + } + public Integer getValue() { + return value; + } + }; + + class LongArgument extends Argument { + Long value; + public LongArgument(String key, Long value) { + super(key); + this.value = value; + } + public Long getValue() { + return value; + } + }; + + + class StringArgumentFactory extends ArgumentFactory { + public StringArgumentFactory(String key) { + super(key); + } + public StringArgumentFactory(String key, IArgumentValidator validator) { + super(key, validator); + } + @Override + public IArgument parse(String key, ListIterator tail) { + if (getArgument().equalsIgnoreCase(key)) { + if (tail.hasNext()) { + String next = tail.next(); + IArgumentValidator validator = getValidator(); + if(validator != null) { + String valid = validator.isValid(next); + if (valid != null) { + tail.previous(); + throw new IllegalArgumentException(valid); + } + } + return new StringArgument(getArgument(), next); + } + } + return null; + } + } + + class IntegerArgumentFactory extends ArgumentFactory { + private Integer lowLimit; + private Integer highLimit; + public IntegerArgumentFactory(String key) { + this(key, null, null); + } + public IntegerArgumentFactory(String key, Integer lowLimit, Integer highLimit) { + super(key); + this.lowLimit = lowLimit; + this.highLimit = highLimit; + } + @Override + public IArgument parse(String key, ListIterator tail) { + if (getArgument().equalsIgnoreCase(key)) { + if (tail.hasNext()) { + try { + Integer l = Integer.valueOf(tail.next()); + if (lowLimit != null && lowLimit > l) + throw new IllegalArgumentException("value is less than low limit, " + l + " < " + lowLimit); + if (highLimit != null && highLimit < l) + throw new IllegalArgumentException("value is greater than high limit, " + l + " > " + highLimit); + return new IntegerArgument(getArgument(), l); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(e); + } + } + } + return null; + } + } + + class LongArgumentFactory extends ArgumentFactory { + public LongArgumentFactory(String key) { + super(key); + } + @Override + public IArgument parse(String key, ListIterator tail) { + if (getArgument().equalsIgnoreCase(key)) { + if (tail.hasNext()) { + try { + Long l = Long.valueOf(tail.next()); + return new LongArgument(getArgument(), l); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(e); + } + } + } + return null; + } + } + + class NoValueArgumentFactory extends ArgumentFactory { + public NoValueArgumentFactory(String key) { + super(key); + } + @Override + public IArgument parse(String key, ListIterator tail) { + if (getArgument().equalsIgnoreCase(key)) { + return new BooleanArgument(getArgument(), Boolean.TRUE); + } + return null; + } + } + +}