/* * Copyright 2017 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.workbench.common.forms.editor.service.backend; import java.util.List; import org.kie.workbench.common.forms.model.FieldDefinition; import org.kie.workbench.common.forms.model.FormModel; import org.uberfire.backend.vfs.Path; /** * Handler class that is able to get {@link FieldDefinition} for a especific {@link FormModel} */ public interface FormModelHandler<F extends FormModel> { /** * Retrieves the supported {@link FormModel} type. */ public Class<F> getModelType(); /** * Initializes the FormModelHandler with the {@link FormModel} and a {@link Path} to get {@link FieldDefinition}. */ void init(F formModel, Path path); /** * Retrieves the available {@link FieldDefinition} for the {@link FormModel} which it's been initialized */ public List<FieldDefinition> getAllFormModelFields(); /** * Creates a {@link FieldDefinition} for the given fieldName if the {@link FormModel} allows it. */ public FieldDefinition createFieldDefinition(String fieldName); /** * Creates a new {@link FormModelHandler} instance. */ public FormModelHandler<F> newInstance(); }