001/**
002 * Copyright 2005-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.krms.service;
017
018import org.kuali.rice.krms.builder.ComponentBuilder;
019import org.kuali.rice.krms.dto.TemplateInfo;
020
021/**
022 * @author Kuali Student Team
023 */
024public interface TemplateRegistry {
025
026    /**
027     * Returns a TemplateInfo with the bean names for the ui to display for the given type.
028     *
029     * @param type
030     * @return
031     */
032    TemplateInfo getTemplateForType(String type);
033
034    /**
035     * Return the termspec name for the given type.
036     *
037     * @param type
038     * @return
039     */
040    String getTermSpecNameForType(String type);
041
042    /**
043     * Return an operator for the given type to be used as a default proposition parameter value.
044     *
045     * @param type
046     * @return
047     */
048    String getOperationForType(String type);
049
050    /**
051     * Return a constant value for the given type to be used as a default proposition parameter value.
052     *
053     * @param type
054     * @return
055     */
056    String getValueForType(String type);
057
058    /**
059     * Return a ComponentBuilder for the given type.
060     *
061     * @param type
062     * @return
063     */
064    ComponentBuilder getComponentBuilderForType(String type);
065
066}