Skip to content

Package: EMFFormsDatabindingEMF

EMFFormsDatabindingEMF

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Eugen Neufeld - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.spi.core.services.databinding.emf;
15:
16: import org.eclipse.core.databinding.observable.list.IObservableList;
17: import org.eclipse.core.databinding.observable.value.IObservableValue;
18: import org.eclipse.core.databinding.property.value.IValueProperty;
19: import org.eclipse.emf.databinding.IEMFListProperty;
20: import org.eclipse.emf.databinding.IEMFValueProperty;
21: import org.eclipse.emf.ecore.EClass;
22: import org.eclipse.emf.ecore.EObject;
23: import org.eclipse.emf.ecore.EStructuralFeature;
24: import org.eclipse.emf.ecore.EStructuralFeature.Setting;
25: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
26: import org.eclipse.emf.edit.domain.EditingDomain;
27: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
28: import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
29:
30: /**
31: * EMF specific interface of the EMFFormsDatabinding.
32: *
33: * @author Eugen Neufeld
34: * @since 1.7
35: *
36: * @noimplement This interface is not intended to be implemented by clients.
37: * @noextend This interface is not intended to be extended by clients.
38: */
39: public interface EMFFormsDatabindingEMF extends EMFFormsDatabinding {
40:
41:         @Override
42:         IObservableValue getObservableValue(VDomainModelReference domainModelReference, EObject object)
43:                 throws DatabindingFailedException;
44:
45:         @Override
46:         IObservableList getObservableList(VDomainModelReference domainModelReference, EObject object)
47:                 throws DatabindingFailedException;
48:
49:         @Override
50:         IEMFValueProperty getValueProperty(VDomainModelReference domainModelReference, EObject object)
51:                 throws DatabindingFailedException;
52:
53:         /**
54:          * Returns an {@link IValueProperty} described by the given {@link VDomainModelReference}. Using this method, value
55:          * properties are created without an {@link org.eclipse.emf.edit.domain.EditingDomain EditingDomain}.
56:          *
57:          * @param domainModelReference The domain model reference pointing to the desired value
58:          * @param rootEClass The root {@link EClass} of the rendered form
59:          * @return The resulting {@link IValueProperty}, does not return <code>null</code>.
60:          * @throws DatabindingFailedException if the databinding could not be executed successfully.
61:          * @since 1.19
62:          */
63:         IEMFValueProperty getValueProperty(VDomainModelReference domainModelReference, EClass rootEClass)
64:                 throws DatabindingFailedException;
65:
66:         /**
67:          * Returns an {@link IValueProperty} described by the given {@link VDomainModelReference} and using the given
68:          * {@link EditingDomain}.
69:          *
70:          * @param domainModelReference The domain model reference pointing to the desired value
71:          * @param rootEClass The root {@link EClass} of the rendered form
72:          * @param editingDomain The {@link EditingDomain} for which the value property is created. May be
73:          * <code>null</code>
74:          * @return The resulting {@link IValueProperty}, does not return <code>null</code>.
75:          * @throws DatabindingFailedException if the databinding could not be executed successfully.
76:          * @since 1.19
77:          */
78:         IEMFValueProperty getValueProperty(VDomainModelReference domainModelReference, EClass rootEClass,
79:                 EditingDomain editingDomain) throws DatabindingFailedException;
80:
81:         @Override
82:         IEMFListProperty getListProperty(VDomainModelReference domainModelReference, EObject object)
83:                 throws DatabindingFailedException;
84:
85:         /**
86:          * Extracts the {@link EStructuralFeature} from the provided {@link IObservableValue}.
87:          *
88:          * @param observableValue The {@link IObservableValue} to extract the {@link EStructuralFeature} from
89:          * @return The extracted {@link EStructuralFeature}
90:          * @throws DatabindingFailedException when the {@link IObservableValue} doesn't implement
91:          * {@link org.eclipse.emf.databinding.IEMFObservable IEMFObservable}
92:          */
93:         EStructuralFeature extractFeature(IObservableValue observableValue) throws DatabindingFailedException;
94:
95:         /**
96:          * Extracts the {@link EStructuralFeature} from the provided {@link IObservableList}.
97:          *
98:          * @param observableList The {@link IObservableList} to extract the {@link EStructuralFeature} from
99:          * @return The extracted {@link EStructuralFeature}
100:          * @throws DatabindingFailedException when the {@link IObservableValue} doesn't implement
101:          * {@link org.eclipse.emf.databinding.IEMFObservable IEMFObservable}
102:          */
103:         EStructuralFeature extractFeature(IObservableList observableList) throws DatabindingFailedException;
104:
105:         /**
106:          * Extracts the observed {@link EObject} from the provided {@link IObservableValue}.
107:          *
108:          * @param observableValue The {@link IObservableValue} to extract the observed {@link EObject} from
109:          * @return The extracted {@link EObject}
110:          * @throws DatabindingFailedException when the {@link IObservableValue} doesn't implement
111:          * {@link org.eclipse.emf.databinding.IEMFObservable IEMFObservable}
112:          */
113:         EObject extractObserved(IObservableValue observableValue) throws DatabindingFailedException;
114:
115:         /**
116:          * Extracts the observed {@link EObject} from the provided {@link IObservableList}.
117:          *
118:          * @param observableList The {@link IObservableList} to extract the observed {@link EObject} from
119:          * @return The extracted {@link EObject}
120:          * @throws DatabindingFailedException when the {@link IObservableValue} doesn't implement
121:          * {@link org.eclipse.emf.databinding.IEMFObservable IEMFObservable}
122:          */
123:         EObject extractObserved(IObservableList observableList) throws DatabindingFailedException;
124:
125:         /**
126:          * Retrieve the Setting which is described by the provided {@link VDomainModelReference} and the provided
127:          * {@link EObject}.
128:          *
129:          * @param domainModelReference The {@link VDomainModelReference} to use to retrieve the setting
130:          * @param object The {@link EObject} to use to retrieve the setting
131:          * @return The Setting being described by the {@link VDomainModelReference}
132:          * @throws DatabindingFailedException if the databinding could not be executed successfully.
133:          * @since 1.8
134:          */
135:         Setting getSetting(VDomainModelReference domainModelReference, EObject object) throws DatabindingFailedException;
136: }