aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/property/PropertyDecelerator.java
blob: 8314309f8ca2d88fc1db8b130556cbea078f3b1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package org.openecomp.sdc.be.components.property;

import java.util.List;

import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;

import fj.data.Either;

public interface PropertyDecelerator {

    /**
     * creates a list of inputs from the given list of properties and updates the properties accordingly
     * @param component the container
     * @param propertiesOwnerId the id of the owner of the properties to declare (e.g ComponentInstance, Policy, Group etc)
     * @param propsToDeclare the list of properties that are being declared as inputs
     * @return the list of inputs that were created from the given properties
     */
    Either<List<InputDefinition>, StorageOperationStatus> declarePropertiesAsInputs(Component component, String propertiesOwnerId, List<ComponentInstancePropInput> propsToDeclare);

    /**
     * returns the values of declared properties to each original state before it was declared as an input.
     * this function is to be called when an input, that was created by declaring a property, is deleted.
     * @param component the container of the input to be deleted
     * @param input the input to be deleted
     */
    StorageOperationStatus unDeclarePropertiesAsInputs(Component component, InputDefinition input);

}