parent
7ef9485b7d
commit
d0f48a2c72
@ -1,70 +0,0 @@
|
||||
package org.wso2.carbon.device.application.mgt.common.config;/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (Pvt) Ltd. licenses this file to you 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.
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class LifecycleGraph {
|
||||
|
||||
private Map<LifecycleStateVertex, List<LifecycleStateVertex>> adjVertices;
|
||||
|
||||
public LifecycleGraph() {
|
||||
this.adjVertices = new HashMap<>() ;
|
||||
}
|
||||
|
||||
public void addVertex(String label) {
|
||||
adjVertices.putIfAbsent(new LifecycleStateVertex(label), new ArrayList<>());
|
||||
}
|
||||
|
||||
public void addVertex(LifecycleStateVertex vertext) {
|
||||
adjVertices.putIfAbsent(vertext, new ArrayList<>());
|
||||
}
|
||||
|
||||
void removeVertex(String label) {
|
||||
LifecycleStateVertex v = new LifecycleStateVertex(label);
|
||||
adjVertices.values()
|
||||
.stream()
|
||||
.map(e -> e.remove(v))
|
||||
.collect(Collectors.toList());
|
||||
adjVertices.remove(new LifecycleStateVertex(label));
|
||||
}
|
||||
|
||||
public void addEdge(String label1, String label2) {
|
||||
LifecycleStateVertex v1 = new LifecycleStateVertex(label1);
|
||||
LifecycleStateVertex v2 = new LifecycleStateVertex(label2);
|
||||
adjVertices.get(v1).add(v2);
|
||||
// adjVertices.get(v2).add(v1);
|
||||
}
|
||||
|
||||
public void removeEdge(String label1, String label2) {
|
||||
LifecycleStateVertex v1 = new LifecycleStateVertex(label1);
|
||||
LifecycleStateVertex v2 = new LifecycleStateVertex(label2);
|
||||
List<LifecycleStateVertex> eV1 = adjVertices.get(v1);
|
||||
List<LifecycleStateVertex> eV2 = adjVertices.get(v2);
|
||||
if (eV1 != null)
|
||||
eV1.remove(v2);
|
||||
if (eV2 != null)
|
||||
eV2.remove(v1);
|
||||
}
|
||||
|
||||
public Map<LifecycleStateVertex, List<LifecycleStateVertex>> getAdjVertices() {
|
||||
return adjVertices;
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
package org.wso2.carbon.device.application.mgt.common.config;/* Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||
*
|
||||
* Entgra (Pvt) Ltd. licenses this file to you 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.
|
||||
*/
|
||||
|
||||
public class LifecycleStateVertex {
|
||||
private String label;
|
||||
private boolean isAppUpdatable;
|
||||
private boolean isAppInstallable;
|
||||
private boolean isInitialState;
|
||||
private boolean isEndState;
|
||||
|
||||
public LifecycleStateVertex(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public boolean isAppUpdatable() {
|
||||
return isAppUpdatable;
|
||||
}
|
||||
|
||||
public void setAppUpdatable(boolean appUpdatable) {
|
||||
isAppUpdatable = appUpdatable;
|
||||
}
|
||||
|
||||
public boolean isAppInstallable() {
|
||||
return isAppInstallable;
|
||||
}
|
||||
|
||||
public void setAppInstallable(boolean appInstallable) {
|
||||
isAppInstallable = appInstallable;
|
||||
}
|
||||
|
||||
public boolean isInitialState() {
|
||||
return isInitialState;
|
||||
}
|
||||
|
||||
public void setInitialState(boolean initialState) {
|
||||
isInitialState = initialState;
|
||||
}
|
||||
|
||||
public boolean isEndState() {
|
||||
return isEndState;
|
||||
}
|
||||
|
||||
public void setEndState(boolean endState) {
|
||||
isEndState = endState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode(){
|
||||
return label == null ? 0 : label.hashCode();
|
||||
}
|
||||
|
||||
// Overriding equals() to compare two LifecycleStateVertex objects
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
|
||||
// If the object is compared with itself then return true
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Check if o is an instance of LifecycleStateVertex or not
|
||||
"null instanceof [type]" also returns false */
|
||||
if (!(o instanceof LifecycleStateVertex)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// typecast o to Complex so that we can compare data members
|
||||
LifecycleStateVertex c = (LifecycleStateVertex) o;
|
||||
|
||||
// Compare the equality of label name and return accordingly
|
||||
return label.equals(c.label);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue