Skip to content

Package: IndexSegmentIdeDescriptor

IndexSegmentIdeDescriptor

nameinstructionbranchcomplexitylinemethod
IndexSegmentIdeDescriptor()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getEStructuralFeatureSelectionValidator()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getReferenceTypeResolver()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getSegmentType()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
isAllowedAsLastElementInPath()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
isAvailableInIde()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
isLastElementInPath()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$0(EStructuralFeature)
M: 11 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
lambda$1(EReference, VDomainModelReferenceSegment)
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2019 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: * Lucas Koehler - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.internal.ide.view.indexsegment;
15:
16: import org.eclipse.emf.ecore.EClass;
17: import org.eclipse.emf.ecore.EReference;
18: import org.eclipse.emf.ecp.view.spi.editor.controls.EStructuralFeatureSelectionValidator;
19: import org.eclipse.emf.ecp.view.spi.editor.controls.ReferenceTypeResolver;
20: import org.eclipse.emf.ecp.view.spi.editor.controls.SegmentIdeDescriptor;
21: import org.eclipse.emfforms.spi.view.indexsegment.model.VIndexsegmentPackage;
22: import org.osgi.service.component.annotations.Component;
23:
24: /**
25: * {@link SegmentIdeDescriptor} for
26: * {@link org.eclipse.emfforms.spi.view.indexsegment.model.VIndexDomainModelReferenceSegment
27: * VIndexDomainModelReferenceSegments}.
28: *
29: * @author Lucas Koehler
30: *
31: */
32: @Component(name = "IndexSegmentIdeDescriptor")
33: public class IndexSegmentIdeDescriptor implements SegmentIdeDescriptor {
34:
35:         @Override
36:         public boolean isAvailableInIde() {
37:                 return true;
38:         }
39:
40:         @Override
41:         public boolean isLastElementInPath() {
42:                 return false;
43:         }
44:
45:         @Override
46:         public boolean isAllowedAsLastElementInPath() {
47:                 return false;
48:         }
49:
50:         @Override
51:         public EStructuralFeatureSelectionValidator getEStructuralFeatureSelectionValidator() {
52:                 return structuralFeature -> {
53:•                        if (EReference.class.isInstance(structuralFeature) && structuralFeature.isMany()) {
54:                                 return null;
55:                         }
56:                         return "An index segment requires a multi reference."; //$NON-NLS-1$
57:                 };
58:         }
59:
60:         @Override
61:         public ReferenceTypeResolver getReferenceTypeResolver() {
62:                 return (reference, segment) -> reference.getEReferenceType();
63:         }
64:
65:         @Override
66:         public EClass getSegmentType() {
67:                 return VIndexsegmentPackage.Literals.INDEX_DOMAIN_MODEL_REFERENCE_SEGMENT;
68:         }
69:
70: }