/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.api.factory.server.model.impl;
import org.eclipse.che.api.core.model.factory.Policies;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.util.Objects;
/**
* Data object for {@link Policies}.
*
* @author Anton Korneta
*/
@Embeddable
public class PoliciesImpl implements Policies {
@Column(name = "referrer")
private String referer;
@Column(name = "creation_strategy")
private String create;
@Column(name = "until")
private Long until;
@Column(name = "since")
private Long since;
public PoliciesImpl() {}
public PoliciesImpl(String referer,
String create,
Long until,
Long since) {
this.referer = referer;
this.create = create;
this.until = until;
this.since = since;
}
public PoliciesImpl(Policies policies) {
this(policies.getReferer(),
policies.getCreate(),
policies.getUntil(),
policies.getSince());
}
@Override
public String getReferer() {
return referer;
}
public void setReferer(String referer) {
this.referer = referer;
}
@Override
public String getCreate() {
return create;
}
public void setCreate(String create) {
this.create = create;
}
@Override
public Long getUntil() {
return until;
}
public void setUntil(Long until) {
this.until = until;
}
@Override
public Long getSince() {
return since;
}
public void setSince(Long since) {
this.since = since;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof PoliciesImpl)) return false;
final PoliciesImpl other = (PoliciesImpl)obj;
return Objects.equals(referer, other.referer)
&& Objects.equals(create, other.create)
&& Objects.equals(until, other.until)
&& Objects.equals(since, other.since);
}
@Override
public int hashCode() {
int result = 7;
result = 31 * result + Objects.hashCode(referer);
result = 31 * result + Objects.hashCode(create);
result = 31 * result + Objects.hashCode(until);
result = 31 * result + Objects.hashCode(since);
return result;
}
@Override
public String toString() {
return "PoliciesImpl{" +
"referer='" + referer + '\'' +
", create='" + create + '\'' +
", until=" + until +
", since=" + since +
'}';
}
}