/*
* Copyright 2014 Thiago da Silva Gonzaga <thiagosg@sjrp.unesp.br>.
*
* 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.example.collections;
import com.example.collections.types.ContactType;
import com.mongocom.annotations.Internal;
import com.mongocom.annotations.Document;
import com.mongocom.annotations.ObjectId;
import com.mongocom.annotations.Reference;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Thiago da Silva Gonzaga <thiagosg@sjrp.unesp.br>.
*/
@Document //this represents the structure of a document of the collection contact
public class Contact {
@ObjectId
private String id; //not required unless you want to retrive this information from db
private String name;
private ContactType type;
@Internal //embedded document(s)
private List<Phone> phones;
private String email;
@Reference //relationship with another document
private Contact company;
public Contact() {
}
public Contact(String name) {
this.name = name;
}
public ContactType getType() {
return type;
}
public void setType(ContactType type) {
this.type = type;
}
public void addPhone(Phone phone) {
if (phones == null) {
phones = new ArrayList<>();
}
phones.add(phone);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Phone> getPhones() {
return phones;
}
public void setPhones(List<Phone> phones) {
this.phones = phones;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Contact getCompany() {
return company;
}
public void setCompany(Contact company) {
this.company = company;
}
}