1ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/*
2ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Copyright (C) 2012 The Android Open Source Project
3ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
4ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License");
5ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * you may not use this file except in compliance with the License.
6ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * You may obtain a copy of the License at
7ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
8ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *      http://www.apache.org/licenses/LICENSE-2.0
9ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
10ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Unless required by applicable law or agreed to in writing, software
11ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS,
12ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * See the License for the specific language governing permissions and
14ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * limitations under the License.
15ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */
16ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
17ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpackage com.android.contacts.common.model.dataitem;
18ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
19ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.content.ContentValues;
20ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.provider.ContactsContract.CommonDataKinds.StructuredName;
21ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.provider.ContactsContract.Contacts.Data;
22ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
23ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/**
24ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Represents a structured name data item, wrapping the columns in {@link
25ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * ContactsContract.CommonDataKinds.StructuredName}.
26ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */
27ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpublic class StructuredNameDataItem extends DataItem {
28ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
29ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public StructuredNameDataItem() {
30ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    super(new ContentValues());
31ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    getContentValues().put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
32ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
33ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
34ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  /* package */ StructuredNameDataItem(ContentValues values) {
35ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    super(values);
36ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
37ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
38ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getDisplayName() {
39ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.DISPLAY_NAME);
40ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
41ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
42ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public void setDisplayName(String name) {
43ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    getContentValues().put(StructuredName.DISPLAY_NAME, name);
44ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
45ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
46ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getGivenName() {
47ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.GIVEN_NAME);
48ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
49ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
50ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getFamilyName() {
51ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.FAMILY_NAME);
52ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
53ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
54ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getPrefix() {
55ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.PREFIX);
56ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
57ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
58ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getMiddleName() {
59ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.MIDDLE_NAME);
60ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
61ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
62ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getSuffix() {
63ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.SUFFIX);
64ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
65ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
66ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getPhoneticGivenName() {
67ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.PHONETIC_GIVEN_NAME);
68ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
69ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
70ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public void setPhoneticGivenName(String name) {
71ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    getContentValues().put(StructuredName.PHONETIC_GIVEN_NAME, name);
72ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
73ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
74ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getPhoneticMiddleName() {
75ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
76ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
77ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
78ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public void setPhoneticMiddleName(String name) {
79ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    getContentValues().put(StructuredName.PHONETIC_MIDDLE_NAME, name);
80ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
81ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
82ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getPhoneticFamilyName() {
83ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.PHONETIC_FAMILY_NAME);
84ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
85ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
86ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public void setPhoneticFamilyName(String name) {
87ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    getContentValues().put(StructuredName.PHONETIC_FAMILY_NAME, name);
88ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
89ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
90ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public String getFullNameStyle() {
91ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return getContentValues().getAsString(StructuredName.FULL_NAME_STYLE);
92ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
93ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
94ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  public boolean isSuperPrimary() {
95ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    final ContentValues contentValues = getContentValues();
96ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian    return contentValues == null || !contentValues.containsKey(StructuredName.IS_SUPER_PRIMARY)
97ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian        ? false
98ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian        : contentValues.getAsBoolean(StructuredName.IS_SUPER_PRIMARY);
99ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  }
100ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian}
101