Skip to content
Snippets Groups Projects
Commit 70d1a20a authored by Fotis Soldatos's avatar Fotis Soldatos
Browse files

feat(policy): add new policy related domain models

parent f8015e34
No related branches found
No related tags found
1 merge request!54Release 2.0.0
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
public enum BooleanOperator {
......
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
public enum NumericalOperator {
......
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
public enum PolicyRuleActionEnum {
......
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
import eu.teraflow.policy.common.Util;
import java.util.List;
public class PolicyRuleBasic {
private final String policyRuleId;
private final PolicyRuleState policyRuleState;
private final int priority;
private final List<PolicyRuleCondition> policyRuleConditions;
private final BooleanOperator booleanOperator;
private final List<PolicyRuleAction> policyRuleActions;
public PolicyRuleBasic(
String policyRuleId,
PolicyRuleState policyRuleState,
int priority,
List<PolicyRuleCondition> policyRuleConditions,
BooleanOperator booleanOperator,
List<PolicyRuleAction> policyRuleActions) {
this.policyRuleId = policyRuleId;
this.policyRuleState = policyRuleState;
this.priority = priority;
this.policyRuleConditions = policyRuleConditions;
this.booleanOperator = booleanOperator;
this.policyRuleActions = policyRuleActions;
}
public String getPolicyRuleId() {
return policyRuleId;
}
public PolicyRuleState getPolicyRuleState() {
return policyRuleState;
}
public int getPriority() {
return priority;
}
public List<PolicyRuleCondition> getPolicyRuleConditions() {
return policyRuleConditions;
}
public BooleanOperator getBooleanOperator() {
return booleanOperator;
}
public List<PolicyRuleAction> getPolicyRuleActions() {
return policyRuleActions;
}
@Override
public String toString() {
return String.format(
"%s:{policyRuleId:\"%s\", %s, priority:%d, [%s], booleanOperator:\"%s\", [%s]}",
getClass().getSimpleName(),
policyRuleId,
policyRuleState,
priority,
Util.toString(policyRuleConditions),
booleanOperator.toString(),
Util.toString(policyRuleActions));
}
}
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
import eu.teraflow.policy.common.Util;
import java.util.List;
public class PolicyRuleDevice {
private final PolicyRuleBasic policyRuleBasic;
private final List<String> deviceIds;
public PolicyRuleDevice(PolicyRuleBasic policyRuleBasic, List<String> deviceIds) {
this.policyRuleBasic = policyRuleBasic;
this.deviceIds = deviceIds;
}
public PolicyRuleBasic getPolicyRuleBasic() {
return policyRuleBasic;
}
public List<String> getDeviceIds() {
return deviceIds;
}
@Override
public String toString() {
return String.format(
"%s:{%s, [%s]}", getClass().getSimpleName(), policyRuleBasic, Util.toString(deviceIds));
}
}
/*
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
* 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 eu.teraflow.policy.model;
import eu.teraflow.policy.common.Util;
import eu.teraflow.policy.context.model.ServiceId;
import java.util.List;
public class PolicyRuleService {
private final PolicyRuleBasic policyRuleBasic;
private final ServiceId serviceId;
private final List<String> deviceIds;
public PolicyRuleService(
PolicyRuleBasic policyRuleBasic, ServiceId serviceId, List<String> deviceIds) {
this.policyRuleBasic = policyRuleBasic;
this.serviceId = serviceId;
this.deviceIds = deviceIds;
}
public PolicyRuleBasic getPolicyRuleBasic() {
return policyRuleBasic;
}
public ServiceId getServiceId() {
return serviceId;
}
public List<String> getDeviceIds() {
return deviceIds;
}
@Override
public String toString() {
return String.format(
"%s:{%s, %s, [%s]}",
getClass().getSimpleName(), policyRuleBasic, serviceId, Util.toString(deviceIds));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment