X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fadapter%2FAdapter.java;fp=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fadapter%2FAdapter.java;h=070d7de406a264384c39b1c2cbab3787e6f50126;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/adapter/Adapter.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/adapter/Adapter.java new file mode 100644 index 000000000..070d7de40 --- /dev/null +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/adapter/Adapter.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 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.databoard.adapter; + +import org.simantics.databoard.Bindings; + +/** + * Adapter converts one java class instance to another. + * + * Use {@link Bindings#getAdapter(org.simantics.databoard.binding.Binding, org.simantics.databoard.binding.Binding)} + * to instantiate an adapter between bindings. + */ +public interface Adapter { + + /** + * Adapt instance of one binding to format of another binding. + * + * Note! adapt may recycle the argument (use it in the result). + * This dependes on the implementation. Cloning adapter recycles only + * immutable instances. + * + * @param obj source instance + * @return result + * @throws AdaptException + */ + public abstract Object adapt(Object obj) + throws AdaptException; + + /** + * Adapt instance of one binding to format of another binding. + * + * Note! adapt may recycle the argument (use it in the result). + * This dependes on the implementation. Cloning adapter recycles only + * immutable instances. + * + * @param obj source instance + * @return result + * @throws RuntimeAdaptException + */ + public abstract Object adaptUnchecked(Object obj) + throws RuntimeAdaptException; + + +} +