/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.dmn.api.core; import java.util.List; import java.util.Map; public interface DMNType extends Cloneable { String getNamespace(); String getName(); String getId(); boolean isCollection(); boolean isComposite(); Map<String, DMNType> getFields(); DMNType getBaseType(); DMNType clone(); /** * Definition of `instance of` accordingly to FEEL specifications Table 49. * @param o * @return if o is instance of the type represented by this type. If the parameter is null, returns false. */ boolean isInstanceOf(Object o); /** * Check if the value passed as parameter can be assigned to this type. * @param value * @return if value can be assigned to the type represented by this type. If the parameter is null, returns true. */ boolean isAssignableValue(Object value); List<DMNUnaryTest> getAllowedValues(); }