/** * Licensed to Jasig under one or more contributor license * agreements. See the NOTICE file distributed with this work * for additional information regarding copyright ownership. * Jasig 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. */ /** * */ package org.jasig.schedassist.impl.caldav; import net.fortuna.ical4j.model.Calendar; /** * Java bean used to track a {@link Calendar} along with it's source URI * (and etag, if available) in the CalDAV server. * * @author Nicholas Blair * @version $ Id: CalendarWithURI.java $ */ public class CalendarWithURI { private final Calendar calendar; private final String uri; private final String etag; /** * * @param calendar * @param uri */ public CalendarWithURI(Calendar calendar, String uri) { this(calendar, uri, null); } /** * @param calendar * @param uri * @param etag */ public CalendarWithURI(Calendar calendar, String uri, String etag) { this.calendar = calendar; this.uri = uri; this.etag = etag; } /** * @return the calendar */ public Calendar getCalendar() { return calendar; } /** * @return the uri */ public String getUri() { return uri; } /** * @return the etag */ public String getEtag() { return etag; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "CalendarWithURI [calendar=" + calendar + ", uri=" + uri + ", etag=" + etag + "]"; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((calendar == null) ? 0 : calendar.hashCode()); result = prime * result + ((etag == null) ? 0 : etag.hashCode()); result = prime * result + ((uri == null) ? 0 : uri.hashCode()); return result; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } CalendarWithURI other = (CalendarWithURI) obj; if (calendar == null) { if (other.calendar != null) { return false; } } else if (!calendar.equals(other.calendar)) { return false; } if (etag == null) { if (other.etag != null) { return false; } } else if (!etag.equals(other.etag)) { return false; } if (uri == null) { if (other.uri != null) { return false; } } else if (!uri.equals(other.uri)) { return false; } return true; } }