- \r
- /**\r
- * Adapt a value of one type to another. \r
- * \r
- * @param value\r
- * @param domain\r
- * @param range\r
- * @return adapted value\r
- * @throws AdapterConstructionException\r
- * @throws AdaptException\r
- */\r
- public Object adapt(Object value, Binding domain, Binding range)\r
- throws AdaptException\r
- {\r
- if (domain == range) return value;\r
- try {\r
- if (range instanceof VariantBinding && !(domain instanceof VariantBinding)) {\r
- // Default to just wrapping the value (avoid adapter construction to save memory)\r
- return ((VariantBinding)range).create(domain, value);\r
- }\r
- return getAdapter(domain, range, true, false).adapt(value);\r
- } catch (AdapterConstructionException | BindingException e) {\r
- throw new AdaptException(e);\r
- }\r
- }\r
- \r
- /**\r
- * Adapt a value of one type to another\r
- * \r
- * @param value\r
- * @param domain\r
- * @param range\r
- * @return adapted value\r
- * @throws AdapterConstructionException\r
- * @throws AdaptException\r
- */\r
- public Object adaptUnchecked(Object value, Binding domain, Binding range)\r
- throws RuntimeAdapterConstructionException, RuntimeAdaptException\r
- {\r
- if (domain == range) return value;\r
- try {\r
- if (range instanceof VariantBinding && !(domain instanceof VariantBinding)) {\r
- // Default to just wrapping the value (avoid adapter construction to save memory)\r
- return ((VariantBinding)range).create(domain, value);\r
- }\r
- return getAdapter(domain, range, true, false).adaptUnchecked(value);\r
- } catch (RuntimeAdapterConstructionException | RuntimeBindingException e) {\r
- throw new RuntimeAdaptException(new AdaptException(e.getCause()));\r
- } catch (AdapterConstructionException | BindingException e) {\r
- throw new RuntimeAdaptException(new AdaptException(e));\r
- }\r
- }\r
- \r
- /**\r
- * Clone a value to a type to another. Bindings that handle immutable values\r
- * may return the same instance, others will guarantee a complete copy. \r
- * \r
- * @param value\r
- * @param domain\r
- * @param range\r
- * @return adapted value\r
- * @throws AdapterConstructionException\r
- * @throws AdaptException\r
- */\r
- public Object clone(Object value, Binding domain, Binding range)\r
- throws AdaptException\r
- {\r
- try {\r
- return getAdapter(domain, range, true, true).adapt(value);\r
- } catch (AdapterConstructionException e) {\r
- throw new AdaptException(e);\r
- }\r
- }\r
- \r
-\r
- /**\r
- * Clone a value of one binding to another. Bindings that handle immutable values\r
- * may return the same instance, others will guarantee a complete copy.\r
- * \r
- * @param value\r
- * @param domain\r
- * @param range\r
- * @return adapted value\r
- * @throws AdapterConstructionException\r
- * @throws AdaptException\r
- */\r
- public Object cloneUnchecked(Object value, Binding domain, Binding range)\r
- throws RuntimeAdapterConstructionException, RuntimeAdaptException\r
- {\r
- try {\r
- return getAdapter(domain, range, true, true).adapt(value);\r
- } catch (AdaptException e) {\r
- throw new RuntimeAdaptException(e);\r
- } catch (RuntimeAdapterConstructionException e) {\r
- throw new RuntimeAdaptException(new AdaptException(e.getCause()));\r
- } catch (AdapterConstructionException e) {\r
- throw new RuntimeAdaptException(new AdaptException(e));\r
- }\r
- } \r
+
+ /**
+ * Adapt a value of one type to another.
+ *
+ * @param value
+ * @param domain
+ * @param range
+ * @return adapted value
+ * @throws AdapterConstructionException
+ * @throws AdaptException
+ */
+ public Object adapt(Object value, Binding domain, Binding range)
+ throws AdaptException
+ {
+ if (domain == range) return value;
+ try {
+ if (range instanceof VariantBinding && !(domain instanceof VariantBinding)) {
+ // Default to just wrapping the value (avoid adapter construction to save memory)
+ return ((VariantBinding)range).create(domain, value);
+ }
+ return getAdapter(domain, range, true, false).adapt(value);
+ } catch (AdapterConstructionException | BindingException e) {
+ throw new AdaptException(e);
+ }
+ }
+
+ /**
+ * Adapt a value of one type to another
+ *
+ * @param value
+ * @param domain
+ * @param range
+ * @return adapted value
+ * @throws AdapterConstructionException
+ * @throws AdaptException
+ */
+ public Object adaptUnchecked(Object value, Binding domain, Binding range)
+ throws RuntimeAdapterConstructionException, RuntimeAdaptException
+ {
+ if (domain == range) return value;
+ try {
+ if (range instanceof VariantBinding && !(domain instanceof VariantBinding)) {
+ // Default to just wrapping the value (avoid adapter construction to save memory)
+ return ((VariantBinding)range).create(domain, value);
+ }
+ return getAdapter(domain, range, true, false).adaptUnchecked(value);
+ } catch (RuntimeAdapterConstructionException | RuntimeBindingException e) {
+ throw new RuntimeAdaptException(new AdaptException(e.getCause()));
+ } catch (AdapterConstructionException | BindingException e) {
+ throw new RuntimeAdaptException(new AdaptException(e));
+ }
+ }
+
+ /**
+ * Clone a value to a type to another. Bindings that handle immutable values
+ * may return the same instance, others will guarantee a complete copy.
+ *
+ * @param value
+ * @param domain
+ * @param range
+ * @return adapted value
+ * @throws AdapterConstructionException
+ * @throws AdaptException
+ */
+ public Object clone(Object value, Binding domain, Binding range)
+ throws AdaptException
+ {
+ try {
+ return getAdapter(domain, range, true, true).adapt(value);
+ } catch (AdapterConstructionException e) {
+ throw new AdaptException(e);
+ }
+ }
+
+
+ /**
+ * Clone a value of one binding to another. Bindings that handle immutable values
+ * may return the same instance, others will guarantee a complete copy.
+ *
+ * @param value
+ * @param domain
+ * @param range
+ * @return adapted value
+ * @throws AdapterConstructionException
+ * @throws AdaptException
+ */
+ public Object cloneUnchecked(Object value, Binding domain, Binding range)
+ throws RuntimeAdapterConstructionException, RuntimeAdaptException
+ {
+ try {
+ return getAdapter(domain, range, true, true).adapt(value);
+ } catch (AdaptException e) {
+ throw new RuntimeAdaptException(e);
+ } catch (RuntimeAdapterConstructionException e) {
+ throw new RuntimeAdaptException(new AdaptException(e.getCause()));
+ } catch (AdapterConstructionException e) {
+ throw new RuntimeAdaptException(new AdaptException(e));
+ }
+ }