/* * Copyright (c) 2010-2013 Evolveum * * 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 com.evolveum.midpoint.repo.sql.data.common.embedded; import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.repo.sql.data.common.enums.RAvailabilityStatus; import com.evolveum.midpoint.repo.sql.util.DtoTranslationException; import com.evolveum.midpoint.repo.sql.util.RUtil; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationalStateType; import org.apache.commons.lang.Validate; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import javax.persistence.Embeddable; import javax.persistence.Enumerated; @Embeddable public class ROperationalState { RAvailabilityStatus lastAvailabilityStatus; @Enumerated public RAvailabilityStatus getLastAvailabilityStatus() { return lastAvailabilityStatus; } public void setLastAvailabilityStatus(RAvailabilityStatus lastAvailabilityStatus) { this.lastAvailabilityStatus = lastAvailabilityStatus; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ROperationalState that = (ROperationalState) o; if (lastAvailabilityStatus != null ? !lastAvailabilityStatus.equals(that.lastAvailabilityStatus) : that.lastAvailabilityStatus != null) return false; return true; } @Override public int hashCode() { int result = lastAvailabilityStatus != null ? lastAvailabilityStatus.hashCode() : 0; return result; } @Override public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE); } public static void copyToJAXB(ROperationalState repo, OperationalStateType jaxb, ObjectType parent, ItemPath path, PrismContext prismContext) throws DtoTranslationException { Validate.notNull(repo, "Repo object must not be null."); Validate.notNull(jaxb, "JAXB object must not be null."); try { if (repo.getLastAvailabilityStatus() != null) { jaxb.setLastAvailabilityStatus(repo.getLastAvailabilityStatus().getSchemaValue()); } } catch (Exception ex) { throw new DtoTranslationException(ex.getMessage(), ex); } } public static void copyFromJAXB(OperationalStateType jaxb, ROperationalState repo) throws DtoTranslationException { Validate.notNull(repo, "Repo object must not be null."); Validate.notNull(jaxb, "JAXB object must not be null."); try { if (jaxb.getLastAvailabilityStatus() != null) { repo.setLastAvailabilityStatus(RUtil.getRepoEnumValue(jaxb.getLastAvailabilityStatus(), RAvailabilityStatus.class)); } } catch (Exception ex) { throw new DtoTranslationException(ex.getMessage(), ex); } } public OperationalStateType toJAXB(ObjectType parent, ItemPath path, PrismContext prismContext) throws DtoTranslationException { OperationalStateType operationalState = new OperationalStateType(); ROperationalState.copyToJAXB(this, operationalState, parent, path, prismContext); return operationalState; } }