X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Fbinding%2Ffactory%2FBindingRepository.java;h=ba24353712c7f90f415b4b2652f7699dba5b27d0;hp=4680eee6a961b9d147fc5c0b3cb4478ae49a5e0e;hb=a1696e5257fae039410c924155fdeffc1ce1b3e9;hpb=286183f3501ea34badb28d05bd8de954eff9b8bc;ds=sidebyside diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/BindingRepository.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/BindingRepository.java index 4680eee6a..ba2435371 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/BindingRepository.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/BindingRepository.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 Association for Decentralized Information Management in + * Copyright (c) 2007, 2018 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 @@ -8,6 +8,7 @@ * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation + * Semantum Oy - gitlab #82 *******************************************************************************/ package org.simantics.databoard.binding.factory; @@ -17,6 +18,7 @@ import java.util.Map.Entry; import org.simantics.databoard.binding.Binding; import org.simantics.databoard.binding.reflection.BindingRequest; +import org.simantics.databoard.type.Datatype; public class BindingRepository { @@ -114,9 +116,20 @@ public class BindingRepository { classMap.clear(); } + /** + * {@link Datatype} class has annotations but it can be considered a "class + * request" as it is a fundamental building block of Databoard and it has a + * fixed structure. Therefore {@link #classMap} is allowed to contain a cached + * Datatype.class -> Binding mapping. + */ + private static final String DATATYPE_CLASS_NAME = Datatype.class.getName(); + boolean isClassRequest( BindingRequest request ) { - return request.className != null && (request.annotations==null || request.annotations.length==0); + return (request.className != null + && ((request.annotations==null || request.annotations.length==0) + || DATATYPE_CLASS_NAME.equals(request.className)) + ); } }