/******************************************************************************* * Copyright (c) 2011 Tasktop Technologies. * 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: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.commons.identity.core; import java.io.Serializable; import org.eclipse.core.runtime.Assert; /** * @author Steffen Pingel */ public class Account implements Serializable { private static final long serialVersionUID = 3670630150657553390L; public static Account id(String id) { Assert.isNotNull(id); return new Account(id); } private final String id; private String kind; private String name; private String url; private Account(String id) { this.id = id; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Account other = (Account) obj; if (id == null) { if (other.id != null) { return false; } } else if (!id.equals(other.id)) { return false; } if (kind == null) { if (other.kind != null) { return false; } } else if (!kind.equals(other.kind)) { return false; } if (name == null) { if (other.name != null) { return false; } } else if (!name.equals(other.name)) { return false; } if (url == null) { if (other.url != null) { return false; } } else if (!url.equals(other.url)) { return false; } return true; } public String getId() { return id; } public String getKind() { return kind; } public String getName() { return name; } public String getUrl() { return url; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((kind == null) ? 0 : kind.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((url == null) ? 0 : url.hashCode()); return result; } public Account kind(String kind) { this.kind = kind; return this; } public Account name(String name) { this.name = name; return this; } public Account url(String url) { this.url = url; return this; } }