new AnnotationStateVariableBinder(v, v.name(), accessor, stringConvertibleTypes) .createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable();
log.fine("Creating state variable '" + getName() + "' with accessor: " + getAccessor()); Datatype datatype = createDatatype(); String defaultValue = createDefaultValue(datatype); if (getAnnotation().allowedValueProvider() != void.class) { allowedValues = getAllowedValuesFromProvider(); } else if (getAnnotation().allowedValues().length > 0) { allowedValues = getAnnotation().allowedValues(); } else if (getAnnotation().allowedValuesEnum() != void.class) { allowedValues = getAllowedValues(getAnnotation().allowedValuesEnum()); } else if (getAccessor() != null && getAccessor().getReturnType().isEnum()) { allowedValues = getAllowedValues(getAccessor().getReturnType()); } else { log.finer("Not restricting allowed values (of string typed state var): " + getName()); "Default value '" + defaultValue + "' is not in allowed values of: " + getName() ); if (getAnnotation().allowedValueRangeProvider() != void.class) { allowedValueRange = getAllowedRangeFromProvider(); } else if (getAnnotation().allowedValueMinimum() > 0 || getAnnotation().allowedValueMaximum() > 0) { allowedValueRange = getAllowedValueRange( getAnnotation().allowedValueMinimum(), getAnnotation().allowedValueMaximum(), getAnnotation().allowedValueStep() ); } else {
protected String[] getAllowedValuesFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueProvider(); if (!AllowedValueProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value provider is not of type " + AllowedValueProvider.class + ": " + getName() ); try { return ((Class<? extends AllowedValueProvider>) provider).newInstance().getValues(); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value provider can't be instantiated: " + getName(), ex ); } }
protected StateVariableAllowedValueRange getAllowedRangeFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueRangeProvider(); if (!AllowedValueRangeProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value range provider is not of type " + AllowedValueRangeProvider.class + ": " + getName() ); try { AllowedValueRangeProvider providerInstance = ((Class<? extends AllowedValueRangeProvider>) provider).newInstance(); return getAllowedValueRange( providerInstance.getMinimum(), providerInstance.getMaximum(), providerInstance.getStep() ); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value range provider can't be instantiated: " + getName(), ex ); } }
protected Datatype createDatatype() throws LocalServiceBindingException { String declaredDatatype = getAnnotation().datatype(); if (declaredDatatype.length() == 0 && getAccessor() != null) { Class returnType = getAccessor().getReturnType(); log.finer("Using accessor return type as state variable type: " + returnType); if (ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), returnType)) { (getAnnotation().allowedValues().length > 0 || getAnnotation().allowedValuesEnum() != void.class)) { log.finer("State variable has restricted allowed values, hence using 'string' datatype"); declaredDatatype = "string"; throw new LocalServiceBindingException("Could not detect datatype of state variable: " + getName());
protected Datatype createDatatype() throws LocalServiceBindingException { String declaredDatatype = getAnnotation().datatype(); if (declaredDatatype.length() == 0 && getAccessor() != null) { Class returnType = getAccessor().getReturnType(); log.finer("Using accessor return type as state variable type: " + returnType); if (ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), returnType)) { (getAnnotation().allowedValues().length > 0 || getAnnotation().allowedValuesEnum() != void.class)) { log.finer("State variable has restricted allowed values, hence using 'string' datatype"); declaredDatatype = "string"; throw new LocalServiceBindingException("Could not detect datatype of state variable: " + getName());
protected StateVariableAllowedValueRange getAllowedRangeFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueRangeProvider(); if (!AllowedValueRangeProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value range provider is not of type " + AllowedValueRangeProvider.class + ": " + getName() ); try { AllowedValueRangeProvider providerInstance = ((Class<? extends AllowedValueRangeProvider>) provider).newInstance(); return getAllowedValueRange( providerInstance.getMinimum(), providerInstance.getMaximum(), providerInstance.getStep() ); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value range provider can't be instantiated: " + getName(), ex ); } }
protected String createDefaultValue(Datatype datatype) throws LocalServiceBindingException { // Next, the default value of the state variable, first the declared one if (getAnnotation().defaultValue().length() != 0) { // The declared default value needs to match the datatype try { datatype.valueOf(getAnnotation().defaultValue()); log.finer("Found state variable default value: " + getAnnotation().defaultValue()); return getAnnotation().defaultValue(); } catch (Exception ex) { throw new LocalServiceBindingException( "Default value doesn't match datatype of state variable '" + getName() + "': " + ex.getMessage() ); } } return null; }
log.fine("Creating state variable '" + getName() + "' with accessor: " + getAccessor()); Datatype datatype = createDatatype(); String defaultValue = createDefaultValue(datatype); if (getAnnotation().allowedValueProvider() != void.class) { allowedValues = getAllowedValuesFromProvider(); } else if (getAnnotation().allowedValues().length > 0) { allowedValues = getAnnotation().allowedValues(); } else if (getAnnotation().allowedValuesEnum() != void.class) { allowedValues = getAllowedValues(getAnnotation().allowedValuesEnum()); } else if (getAccessor() != null && getAccessor().getReturnType().isEnum()) { allowedValues = getAllowedValues(getAccessor().getReturnType()); } else { log.finer("Not restricting allowed values (of string typed state var): " + getName()); "Default value '" + defaultValue + "' is not in allowed values of: " + getName() ); if (getAnnotation().allowedValueRangeProvider() != void.class) { allowedValueRange = getAllowedRangeFromProvider(); } else if (getAnnotation().allowedValueMinimum() > 0 || getAnnotation().allowedValueMaximum() > 0) { allowedValueRange = getAllowedValueRange( getAnnotation().allowedValueMinimum(), getAnnotation().allowedValueMaximum(), getAnnotation().allowedValueStep() ); } else {
protected Datatype createDatatype() throws LocalServiceBindingException { String declaredDatatype = getAnnotation().datatype(); if (declaredDatatype.length() == 0 && getAccessor() != null) { Class returnType = getAccessor().getReturnType(); log.finer("Using accessor return type as state variable type: " + returnType); if (ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), returnType)) { (getAnnotation().allowedValues().length > 0 || getAnnotation().allowedValuesEnum() != void.class)) { log.finer("State variable has restricted allowed values, hence using 'string' datatype"); declaredDatatype = "string"; throw new LocalServiceBindingException("Could not detect datatype of state variable: " + getName());
protected StateVariableAllowedValueRange getAllowedRangeFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueRangeProvider(); if (!AllowedValueRangeProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value range provider is not of type " + AllowedValueRangeProvider.class + ": " + getName() ); try { AllowedValueRangeProvider providerInstance = ((Class<? extends AllowedValueRangeProvider>) provider).newInstance(); return getAllowedValueRange( providerInstance.getMinimum(), providerInstance.getMaximum(), providerInstance.getStep() ); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value range provider can't be instantiated: " + getName(), ex ); } }
protected String createDefaultValue(Datatype datatype) throws LocalServiceBindingException { // Next, the default value of the state variable, first the declared one if (getAnnotation().defaultValue().length() != 0) { // The declared default value needs to match the datatype try { datatype.valueOf(getAnnotation().defaultValue()); log.finer("Found state variable default value: " + getAnnotation().defaultValue()); return getAnnotation().defaultValue(); } catch (Exception ex) { throw new LocalServiceBindingException( "Default value doesn't match datatype of state variable '" + getName() + "': " + ex.getMessage() ); } } return null; }
new AnnotationStateVariableBinder(v, v.name(), accessor, stringConvertibleTypes) .createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable();
log.fine("Creating state variable '" + getName() + "' with accessor: " + getAccessor()); Datatype datatype = createDatatype(); String defaultValue = createDefaultValue(datatype); if (getAnnotation().allowedValueProvider() != void.class) { allowedValues = getAllowedValuesFromProvider(); } else if (getAnnotation().allowedValues().length > 0) { allowedValues = getAnnotation().allowedValues(); } else if (getAnnotation().allowedValuesEnum() != void.class) { allowedValues = getAllowedValues(getAnnotation().allowedValuesEnum()); } else if (getAccessor() != null && getAccessor().getReturnType().isEnum()) { allowedValues = getAllowedValues(getAccessor().getReturnType()); } else { log.finer("Not restricting allowed values (of string typed state var): " + getName()); "Default value '" + defaultValue + "' is not in allowed values of: " + getName() ); if (getAnnotation().allowedValueRangeProvider() != void.class) { allowedValueRange = getAllowedRangeFromProvider(); } else if (getAnnotation().allowedValueMinimum() > 0 || getAnnotation().allowedValueMaximum() > 0) { allowedValueRange = getAllowedValueRange( getAnnotation().allowedValueMinimum(), getAnnotation().allowedValueMaximum(), getAnnotation().allowedValueStep() ); } else {
protected String[] getAllowedValuesFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueProvider(); if (!AllowedValueProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value provider is not of type " + AllowedValueProvider.class + ": " + getName() ); try { return ((Class<? extends AllowedValueProvider>) provider).newInstance().getValues(); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value provider can't be instantiated: " + getName(), ex ); } }
new AnnotationStateVariableBinder(v, v.name(), accessor, stringConvertibleTypes) .createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable(); StateVariable stateVar = new AnnotationStateVariableBinder( svAnnotation, svAnnotation.name().length() == 0 accessor, stringConvertibleTypes ).createStateVariable();
protected String[] getAllowedValuesFromProvider() throws LocalServiceBindingException { Class provider = getAnnotation().allowedValueProvider(); if (!AllowedValueProvider.class.isAssignableFrom(provider)) throw new LocalServiceBindingException( "Allowed value provider is not of type " + AllowedValueProvider.class + ": " + getName() ); try { return ((Class<? extends AllowedValueProvider>) provider).newInstance().getValues(); } catch (Exception ex) { throw new LocalServiceBindingException( "Allowed value provider can't be instantiated: " + getName(), ex ); } }
protected String createDefaultValue(Datatype datatype) throws LocalServiceBindingException { // Next, the default value of the state variable, first the declared one if (getAnnotation().defaultValue().length() != 0) { // The declared default value needs to match the datatype try { datatype.valueOf(getAnnotation().defaultValue()); log.finer("Found state variable default value: " + getAnnotation().defaultValue()); return getAnnotation().defaultValue(); } catch (Exception ex) { throw new LocalServiceBindingException( "Default value doesn't match datatype of state variable '" + getName() + "': " + ex.getMessage() ); } } return null; }