blob: bd81f22b9846a70ff55f06cbc0b832575de038c0 [file] [log] [blame]
/*******************************************************************************
* Copyright 2017 General Electric Company
*
* 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.
*
* SPDX-License-Identifier: Apache-2.0
*******************************************************************************/
package com.ge.predix.acs.privilege.management;
import java.util.Set;
import com.ge.predix.acs.model.Attribute;
import com.ge.predix.acs.privilege.management.dao.ResourceEntity;
import com.ge.predix.acs.privilege.management.dao.SubjectEntity;
import com.ge.predix.acs.rest.BaseResource;
import com.ge.predix.acs.rest.BaseSubject;
import com.ge.predix.acs.utils.JsonUtils;
import com.ge.predix.acs.zone.management.dao.ZoneEntity;
/**
*
* @author acs-engineers@ge.com
*/
public class PrivilegeConverter {
private final JsonUtils jsonUtils = new JsonUtils();
public ResourceEntity toResourceEntity(final ZoneEntity zone, final BaseResource resource) {
if (resource == null) {
return null;
}
ResourceEntity resourceEntity = new ResourceEntity(zone, resource.getResourceIdentifier());
resourceEntity.setAttributes(resource.getAttributes());
String attributesAsJson = this.jsonUtils.serialize(resource.getAttributes());
resourceEntity.setAttributesAsJson(attributesAsJson);
resourceEntity.setParents(resource.getParents());
return resourceEntity;
}
@SuppressWarnings("unchecked")
public BaseResource toResource(final ResourceEntity resourceEntity) {
if (resourceEntity == null) {
return null;
}
BaseResource resource = new BaseResource(resourceEntity.getResourceIdentifier());
Set<Attribute> deserialize = this.jsonUtils.deserialize(resourceEntity.getAttributesAsJson(), Set.class,
Attribute.class);
resource.setAttributes(deserialize);
resource.setParents(resourceEntity.getParents());
return resource;
}
public SubjectEntity toSubjectEntity(final ZoneEntity zone, final BaseSubject subject) {
if (subject == null) {
return null;
}
SubjectEntity subjectEntity = new SubjectEntity(zone, subject.getSubjectIdentifier());
subjectEntity.setAttributes(subject.getAttributes());
String attributesAsJson = this.jsonUtils.serialize(subject.getAttributes());
subjectEntity.setAttributesAsJson(attributesAsJson);
subjectEntity.setParents(subject.getParents());
return subjectEntity;
}
@SuppressWarnings("unchecked")
public BaseSubject toSubject(final SubjectEntity subjectEntity) {
if (subjectEntity == null) {
return null;
}
BaseSubject subject = new BaseSubject(subjectEntity.getSubjectIdentifier());
Set<Attribute> deserialize = this.jsonUtils.deserialize(subjectEntity.getAttributesAsJson(), Set.class,
Attribute.class);
subject.setAttributes(deserialize);
subject.setParents(subjectEntity.getParents());
return subject;
}
}