X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.objmap2%2Fsrc%2Forg%2Fsimantics%2Fobjmap%2Fgraph%2Frules%2Frange%2FCompoundGetSetValueAccessor.java;h=ff175393cd51febf5aa0e10769982464a2218fc1;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=7dac5f7f0c352edc38b256d947206846eb2663c9;hpb=b35573372259ace60d8827766fe41443f4c57629;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/range/CompoundGetSetValueAccessor.java b/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/range/CompoundGetSetValueAccessor.java index 7dac5f7f0..ff175393c 100644 --- a/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/range/CompoundGetSetValueAccessor.java +++ b/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/range/CompoundGetSetValueAccessor.java @@ -1,84 +1,84 @@ -/******************************************************************************* - * Copyright (c) 2012, 2013 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.objmap.graph.rules.range; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import org.simantics.objmap.exceptions.MappingException; - - -/** - * Accessor for mapped value. Uses two methods: - * - Getter: returns the current value. - * - Setter: sets the current value. The value may be null. (if setter parameter is primitive, null value is not mapped). - * - * @author Marko Luukkainen - * - * @param - */ -public class CompoundGetSetValueAccessor implements IRangeAccessor { - - private Method getter; - private Method setter; - private boolean primitive; - - public CompoundGetSetValueAccessor(Method getter, Method setter) { - this.getter = getter; - this.setter = setter; - this.primitive = setter.getParameterTypes()[0].isPrimitive(); - } - - @SuppressWarnings("unchecked") - public T get(Range element) throws MappingException { - try { - return (T) getter.invoke(element); - } catch (IllegalArgumentException e) { - throw new MappingException(e); - } catch (IllegalAccessException e) { - throw new MappingException(e); - } catch (InvocationTargetException e) { - throw new MappingException(e.getCause()); - } - }; - - @Override - public boolean set(Range element, T value) - throws MappingException { - if (value == null && primitive) - return false; - if (equal(get(element),value)) - return false; - try { - setter.invoke(element, value); - } catch (IllegalArgumentException e) { - throw new MappingException(e); - } catch (IllegalAccessException e) { - throw new MappingException(e); - } catch (InvocationTargetException e) { - throw new MappingException(e.getCause()); - } - return true; - - } - - private boolean equal(Object v1, Object v2) { - if (v1 == null) { - if (v2 == null) - return true; - return false; - } else if (v2 == null) { - return false; - } - return v1.equals(v2); - } -} +/******************************************************************************* + * Copyright (c) 2012, 2013 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.objmap.graph.rules.range; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import org.simantics.objmap.exceptions.MappingException; + + +/** + * Accessor for mapped value. Uses two methods: + * - Getter: returns the current value. + * - Setter: sets the current value. The value may be null. (if setter parameter is primitive, null value is not mapped). + * + * @author Marko Luukkainen + * + * @param + */ +public class CompoundGetSetValueAccessor implements IRangeAccessor { + + private Method getter; + private Method setter; + private boolean primitive; + + public CompoundGetSetValueAccessor(Method getter, Method setter) { + this.getter = getter; + this.setter = setter; + this.primitive = setter.getParameterTypes()[0].isPrimitive(); + } + + @SuppressWarnings("unchecked") + public T get(Range element) throws MappingException { + try { + return (T) getter.invoke(element); + } catch (IllegalArgumentException e) { + throw new MappingException(e); + } catch (IllegalAccessException e) { + throw new MappingException(e); + } catch (InvocationTargetException e) { + throw new MappingException(e.getCause()); + } + }; + + @Override + public boolean set(Range element, T value) + throws MappingException { + if (value == null && primitive) + return false; + if (equal(get(element),value)) + return false; + try { + setter.invoke(element, value); + } catch (IllegalArgumentException e) { + throw new MappingException(e); + } catch (IllegalAccessException e) { + throw new MappingException(e); + } catch (InvocationTargetException e) { + throw new MappingException(e.getCause()); + } + return true; + + } + + private boolean equal(Object v1, Object v2) { + if (v1 == null) { + if (v2 == null) + return true; + return false; + } else if (v2 == null) { + return false; + } + return v1.equals(v2); + } +}