Search in sources :

Example 1 with PhoneNumber

use of sqlite.feature.many2many.case6.model.PhoneNumber in project data-transfer-project by google.

the class VCardToGoogleContactConverter method convertToGooglePhoneNumber.

private static PhoneNumber convertToGooglePhoneNumber(Telephone vCardTelephone) {
    PhoneNumber phoneNumber = new PhoneNumber();
    phoneNumber.setValue(vCardTelephone.getText());
    if (vCardTelephone.getPref() != null && vCardTelephone.getPref() == VCARD_PRIMARY_PREF) {
        phoneNumber.setMetadata(PRIMARY_FIELD_METADATA);
    } else {
        phoneNumber.setMetadata(SECONDARY_FIELD_METADATA);
    }
    return phoneNumber;
}
Also used : PhoneNumber(com.google.api.services.people.v1.model.PhoneNumber)

Example 2 with PhoneNumber

use of sqlite.feature.many2many.case6.model.PhoneNumber in project data-transfer-project by google.

the class GoogleContactToVCardConverterTest method testConversionToVCardTelephone.

@Test
public void testConversionToVCardTelephone() {
    // Set up test: person with 2 primary phone numbers and 1 secondary phone number
    String primaryValue1 = "334-844-4244";
    String primaryValue2 = "411";
    String secondaryValue = "(555) 867-5309";
    PhoneNumber primaryPhone1 = new PhoneNumber().setValue(primaryValue1).setMetadata(PRIMARY_FIELD_METADATA);
    PhoneNumber primaryPhone2 = new PhoneNumber().setValue(primaryValue2).setMetadata(PRIMARY_FIELD_METADATA);
    PhoneNumber secondaryPhone = new PhoneNumber().setValue(secondaryValue).setMetadata(SECONDARY_FIELD_METADATA);
    Person person = DEFAULT_PERSON.setPhoneNumbers(Arrays.asList(secondaryPhone, primaryPhone1, primaryPhone2));
    // Run test
    VCard vCard = GoogleContactToVCardConverter.convert(person);
    // Check results for correct values and preferences
    List<Telephone> resultPrimaryPhoneList = getPropertiesWithPreference(vCard, Telephone.class, VCARD_PRIMARY_PREF);
    assertThat(getValuesFromProperties(resultPrimaryPhoneList, Telephone::getText)).containsExactly(primaryValue1, primaryValue2);
    List<Telephone> resultSecondaryPhoneList = getPropertiesWithPreference(vCard, Telephone.class, VCARD_PRIMARY_PREF + 1);
    assertThat(getValuesFromProperties(resultSecondaryPhoneList, Telephone::getText)).containsExactly(secondaryValue);
}
Also used : Telephone(ezvcard.property.Telephone) PhoneNumber(com.google.api.services.people.v1.model.PhoneNumber) Person(com.google.api.services.people.v1.model.Person) VCard(ezvcard.VCard) Test(org.junit.Test)

Example 3 with PhoneNumber

use of sqlite.feature.many2many.case6.model.PhoneNumber in project data-transfer-project by google.

the class VCardToGoogleContactConverterTest method testConversionToGooglePhones.

@Test
public void testConversionToGooglePhones() {
    // Set up test: vCard with 2 primary phone numbers and 1 secondary phone number
    String primaryValue1 = "334-844-4244";
    String primaryValue2 = "411";
    String secondaryValue = "(555) 867-5309";
    Telephone primaryTelephone1 = new Telephone(primaryValue1);
    primaryTelephone1.setPref(VCARD_PRIMARY_PREF);
    Telephone primaryTelephone2 = new Telephone(primaryValue2);
    primaryTelephone2.setPref(VCARD_PRIMARY_PREF);
    Telephone secondaryTelephone = new Telephone(secondaryValue);
    secondaryTelephone.setPref(VCARD_PRIMARY_PREF + 1);
    // Add numbers to vCard.  Order shouldn't matter.
    VCard vCard = defaultVCard;
    vCard.addTelephoneNumber(secondaryTelephone);
    vCard.addTelephoneNumber(primaryTelephone1);
    vCard.addTelephoneNumber(primaryTelephone2);
    // Run test
    Person person = VCardToGoogleContactConverter.convert(vCard);
    // Check results
    // Correct number of phone numbers
    assertThat(person.getPhoneNumbers().size()).isEqualTo(3);
    // Check primary phone numbers
    List<PhoneNumber> actualPrimaryNumbers = person.getPhoneNumbers().stream().filter(a -> a.getMetadata().getPrimary()).collect(Collectors.toList());
    List<String> actualPrimaryNumberStrings = getValuesFromFields(actualPrimaryNumbers, PhoneNumber::getValue);
    assertThat(actualPrimaryNumberStrings).containsExactly(primaryValue1, primaryValue2);
    // Check secondary phone numbers
    List<PhoneNumber> actualSecondaryNumbers = person.getPhoneNumbers().stream().filter(a -> !a.getMetadata().getPrimary()).collect(Collectors.toList());
    List<String> actualSecondaryNumberStrings = getValuesFromFields(actualSecondaryNumbers, PhoneNumber::getValue);
    assertThat(actualSecondaryNumberStrings).containsExactly(secondaryValue);
}
Also used : VCard(ezvcard.VCard) VCARD_PRIMARY_PREF(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.VCARD_PRIMARY_PREF) EmailAddress(com.google.api.services.people.v1.model.EmailAddress) Telephone(ezvcard.property.Telephone) SOURCE_PARAM_NAME_TYPE(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.SOURCE_PARAM_NAME_TYPE) Test(org.junit.Test) PhoneNumber(com.google.api.services.people.v1.model.PhoneNumber) Truth.assertThat(com.google.common.truth.Truth.assertThat) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) StructuredName(ezvcard.property.StructuredName) Pair(com.google.gdata.util.common.base.Pair) Person(com.google.api.services.people.v1.model.Person) List(java.util.List) CONTACT_SOURCE_TYPE(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.CONTACT_SOURCE_TYPE) Nullable(com.google.gdata.util.common.base.Nullable) Address(com.google.api.services.people.v1.model.Address) Email(ezvcard.property.Email) Name(com.google.api.services.people.v1.model.Name) Collections(java.util.Collections) Before(org.junit.Before) Telephone(ezvcard.property.Telephone) PhoneNumber(com.google.api.services.people.v1.model.PhoneNumber) VCard(ezvcard.VCard) Person(com.google.api.services.people.v1.model.Person) Test(org.junit.Test)

Example 4 with PhoneNumber

use of sqlite.feature.many2many.case6.model.PhoneNumber in project kripton by xcesco.

the class PhoneDaoImpl method selectByNumber.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, action_type, number, country_code, contact_name, contact_id FROM phone_number WHERE number = ${number}</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>action_type</dt><dd>is associated to bean's property <strong>actionType</strong></dd>
 * 	<dt>number</dt><dd>is associated to bean's property <strong>number</strong></dd>
 * 	<dt>country_code</dt><dd>is associated to bean's property <strong>countryCode</strong></dd>
 * 	<dt>contact_name</dt><dd>is associated to bean's property <strong>contactName</strong></dd>
 * 	<dt>contact_id</dt><dd>is associated to bean's property <strong>contactId</strong></dd>
 * </dl>
 *
 * <h2>Query's parameters:</h2>
 * <dl>
 * 	<dt>${number}</dt><dd>is binded to method's parameter <strong>number</strong></dd>
 * </dl>
 *
 * @param number
 * 	is binded to <code>${number}</code>
 * @return selected bean or <code>null</code>.
 */
@Override
public PhoneNumber selectByNumber(String number) {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_BY_NUMBER_SQL2;
    // add where arguments
    _contentValues.addWhereArgs((number == null ? "" : number));
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        // log section END
        PhoneNumber resultBean = null;
        if (_cursor.moveToFirst()) {
            int index0 = _cursor.getColumnIndex("id");
            int index1 = _cursor.getColumnIndex("action_type");
            int index2 = _cursor.getColumnIndex("number");
            int index3 = _cursor.getColumnIndex("country_code");
            int index4 = _cursor.getColumnIndex("contact_name");
            int index5 = _cursor.getColumnIndex("contact_id");
            resultBean = new PhoneNumber();
            resultBean.id = _cursor.getLong(index0);
            if (!_cursor.isNull(index1)) {
                resultBean.actionType = ActionType.valueOf(_cursor.getString(index1));
            }
            if (!_cursor.isNull(index2)) {
                resultBean.number = _cursor.getString(index2);
            }
            if (!_cursor.isNull(index3)) {
                resultBean.countryCode = _cursor.getString(index3);
            }
            if (!_cursor.isNull(index4)) {
                resultBean.contactName = _cursor.getString(index4);
            }
            if (!_cursor.isNull(index5)) {
                resultBean.contactId = _cursor.getString(index5);
            }
        }
        return resultBean;
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) PhoneNumber(sqlite.kripton111.model.PhoneNumber) Cursor(android.database.Cursor)

Example 5 with PhoneNumber

use of sqlite.feature.many2many.case6.model.PhoneNumber in project kripton by xcesco.

the class PhoneDaoImpl method selectAll.

/**
 * <h2>Select SQL:</h2>
 *
 * <pre>SELECT id, action, number, country_code, contact_name, contact_id FROM phone_number ORDER BY contact_name, number</pre>
 *
 * <h2>Projected columns:</h2>
 * <dl>
 * 	<dt>id</dt><dd>is associated to bean's property <strong>id</strong></dd>
 * 	<dt>action</dt><dd>is associated to bean's property <strong>action</strong></dd>
 * 	<dt>number</dt><dd>is associated to bean's property <strong>number</strong></dd>
 * 	<dt>country_code</dt><dd>is associated to bean's property <strong>countryCode</strong></dd>
 * 	<dt>contact_name</dt><dd>is associated to bean's property <strong>contactName</strong></dd>
 * 	<dt>contact_id</dt><dd>is associated to bean's property <strong>contactId</strong></dd>
 * </dl>
 *
 * @return collection of bean or empty collection.
 */
@Override
public List<PhoneNumber> selectAll() {
    KriptonContentValues _contentValues = contentValues();
    // query SQL is statically defined
    String _sql = SELECT_ALL_SQL3;
    // add where arguments
    String[] _sqlArgs = _contentValues.whereArgsAsArray();
    // log section BEGIN
    if (_context.isLogEnabled()) {
        // manage log
        Logger.info(_sql);
        // log for where parameters -- BEGIN
        int _whereParamCounter = 0;
        for (String _whereParamItem : _contentValues.whereArgs()) {
            Logger.info("==> param%s: '%s'", (_whereParamCounter++), StringUtils.checkSize(_whereParamItem));
        }
    // log for where parameters -- END
    }
    // log section END
    try (Cursor _cursor = database().rawQuery(_sql, _sqlArgs)) {
        // log section BEGIN
        if (_context.isLogEnabled()) {
            Logger.info("Rows found: %s", _cursor.getCount());
        }
        // log section END
        ArrayList<PhoneNumber> resultList = new ArrayList<PhoneNumber>(_cursor.getCount());
        PhoneNumber resultBean = null;
        if (_cursor.moveToFirst()) {
            int index0 = _cursor.getColumnIndex("id");
            int index1 = _cursor.getColumnIndex("action");
            int index2 = _cursor.getColumnIndex("number");
            int index3 = _cursor.getColumnIndex("country_code");
            int index4 = _cursor.getColumnIndex("contact_name");
            int index5 = _cursor.getColumnIndex("contact_id");
            do {
                resultBean = new PhoneNumber();
                resultBean.id = _cursor.getLong(index0);
                if (!_cursor.isNull(index1)) {
                    resultBean.action = ActionType.valueOf(_cursor.getString(index1));
                }
                if (!_cursor.isNull(index2)) {
                    resultBean.number = _cursor.getString(index2);
                }
                if (!_cursor.isNull(index3)) {
                    resultBean.countryCode = _cursor.getString(index3);
                }
                if (!_cursor.isNull(index4)) {
                    resultBean.contactName = _cursor.getString(index4);
                }
                if (!_cursor.isNull(index5)) {
                    resultBean.contactId = _cursor.getString(index5);
                }
                resultList.add(resultBean);
            } while (_cursor.moveToNext());
        }
        return resultList;
    }
}
Also used : KriptonContentValues(com.abubusoft.kripton.android.sqlite.KriptonContentValues) ArrayList(java.util.ArrayList) PhoneNumber(sqlite.kripton186.model.PhoneNumber) Cursor(android.database.Cursor)

Aggregations

Cursor (android.database.Cursor)15 KriptonContentValues (com.abubusoft.kripton.android.sqlite.KriptonContentValues)15 PhoneNumber (com.google.api.services.people.v1.model.PhoneNumber)6 ArrayList (java.util.ArrayList)5 Person (com.google.api.services.people.v1.model.Person)4 VCard (ezvcard.VCard)4 Telephone (ezvcard.property.Telephone)4 Test (org.junit.Test)4 PhoneNumber (sqlite.feature.many2many.case4.model.PhoneNumber)3 PhoneNumber (sqlite.feature.many2many.case5.model.PhoneNumber)3 PhoneNumber (sqlite.feature.many2many.case6.model.PhoneNumber)3 PhoneNumber (sqlite.kripton111.model.PhoneNumber)3 PhoneNumber (sqlite.kripton186.model.PhoneNumber)3 Address (com.google.api.services.people.v1.model.Address)2 EmailAddress (com.google.api.services.people.v1.model.EmailAddress)2 Name (com.google.api.services.people.v1.model.Name)2 Truth.assertThat (com.google.common.truth.Truth.assertThat)2 Nullable (com.google.gdata.util.common.base.Nullable)2 Pair (com.google.gdata.util.common.base.Pair)2 Email (ezvcard.property.Email)2