package org.ovirt.engine.api.restapi.types; import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.api.model.TagParent; import org.ovirt.engine.core.common.businessentities.tags; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; public class TagMapper { @Mapping(from = Tag.class, to = tags.class) public static tags map(Tag model, tags template) { tags entity = template != null ? template : new tags(); entity.setparent_id(parent(model, entity.getparent_id())); if (model.isSetId()) { entity.settag_id(new Guid(model.getId())); } if (model.isSetName()) { entity.settag_name(model.getName()); } if (model.isSetDescription()) { entity.setdescription(model.getDescription()); } return entity; } @Mapping(from = tags.class, to = Tag.class) public static Tag map(tags entity, Tag template) { Tag model = template != null ? template : new Tag(); model.setId(entity.gettag_id().toString()); model.setName(entity.gettag_name()); model.setDescription(entity.getdescription()); model.setParent(parent(entity)); return model; } private static NGuid parent(Tag model, NGuid current) { if (model.isSetParent() && model.getParent().isSetTag() && model.getParent().getTag().isSetId()) { return new Guid(model.getParent().getTag().getId()); } else { return current == null ? NGuid.Empty : current; } } private static TagParent parent(tags entity) { if (entity.getparent_id() != null) { TagParent parent = new TagParent(); parent.setTag(new Tag()); parent.getTag().setId(entity.getparent_id().toString()); return parent; } else { return null; } } }