All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.datacleaner.metadata.ColumnMeaning Maven / Gradle / Ivy

/**
 * DataCleaner (community edition)
 * Copyright (C) 2014 Neopost - Customer Information Management
 *
 * This copyrighted material is made available to anyone wishing to use, modify,
 * copy, or redistribute it subject to the terms and conditions of the GNU
 * Lesser General Public License, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution; if not, write to:
 * Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor
 * Boston, MA  02110-1301  USA
 */
package org.datacleaner.metadata;

/**
 * A common and general enum of 'meanings of columns/fields' in a table. This
 * type is available as a convenience for mapping and registering metadata.
 */
public enum ColumnMeaning implements HasColumnMeaning {

    // generic items

    OTHER("Other", "Disregard", "Nothing"),

    KEY_PRIMARY("Primary Key", "ID", "Record ID", "Identifier", "key", "PKID", "Record key"),

    KEY_FOREIGN("Foreign Key", "FK"),

    // PERSON oriented items

    PERSON_NAME_GIVEN("First name", "Given name", "Forename", "Christian name", "1st name", "Name one",
            "Contact first name", "Contact given name"),

    PERSON_NAME_FAMILY("Last name", "Family name", "Surname", "2nd name", "Name two", "Contact last name",
            "Contact family name"),

    PERSON_NAME_FULL("Full name", "Name", "Person name", "Contact", "Contact name"),

    PERSON_INITIALS("Initials", "Name initials", "Person name initials"),

    PERSON_TITLE("Person title", "Title", "Salutation"),

    PERSON_GENDER("Gender", "Sex"),

    PERSON_AGE("Age", "Customer age", "Contact age"),

    PERSON_BIRTHDATE("Birthdate", "Date of birth", "DoB"),

    PERSON_REGISTRATION_NUMBER("Social security number", "Person number", "Person Identifier"),

    PERSON_JOB_TITLE("Job title", "Person job title", "Employee title", "Employment role"),

    // COMPANY oriented items

    COMPANY_REGISTRATION_NUMBER("Company registration number", "Reg number"),

    COMPANY_NAME("Company name", "Company", "Organization", "Business", "Organisation name", "Employer", "Firm",
            "Workplace", "Works at", "Vendor", "Vendor name", "Supplier", "Supplier name", "Customer name"),

    // PRODUCT oriented items

    PRODUCT_CODE("Product code", "Product ID"),

    PRODUCT_NAME("Product name", "Product"),

    PRODUCT_LINE("Product line", "Product type", "Product area"),

    PRODUCT_QUANTITY("Product quantity", "Quantity", "Product amount", "Quantity in stock", "Quantity ordered",
            "Quantity bought"),

    // MONEY oriented items

    MONEY_AMOUNT("Money amount", "Amount", "Price", "Cost", "Credit", "Buy price", "Payment amount", "Total price",
            "Unit price", "Price each", "Income amount"),

    MONEY_CURRENCY("Money currency", "Currency", "Valuta", "Exchange", "Income currency", "Payment currency",
            "Price currency"),

    // ADDRESS oriented items

    ADDRESS_LINE("Addressline", "Line", "Address"),

    ADDRESS_COUNTRY("Country", "Country code", "Country name", "Land", "Country ISO", "Nation", "Cty", "Nationality"),

    ADDRESS_STATE("State", "State code", "Province", "Postal state"),

    ADDRESS_COUNTY("Region/County", "County name", "County", "County code", "Region"),

    ADDRESS_CITY("City", "Town", "Postal town", "Post town", "Postal city"),

    ADDRESS_POSTAL_CODE("Postal code", "Zip", "Zip code", "Post code", "Post number"),

    ADDRESS_STREET("Street", "Street name", "Thoroughfare", "Road", "Avenue", "Str", "Way"),

    ADDRESS_HOUSE_NUMBER("House number", "House no", "Hausnummer", "huisnummer", "nummer", "Husnummer"),

    ADDRESS_APARTMENT("Apartment/Suite number", "Apartment", "Suite", "Unit", "Floor", "Etage", "Ste", "Lejlighed"),

    // PHONE oriented items

    PHONE_PHONENUMBER("Phone number", "Phone", "Phone no", "Telefon", "Tel", "Tele", "Landline"),

    PHONE_MOBILE("Mobile phone", "Mobile", "Cellphone", "Mobil", "Mob"),

    PHONE_FAX("Fax number", "Fax", "Faxnummer"),

    // EMAIL oriented items

    EMAIL_ADDRESS("Email", "Mail", "Email address", "Mail address", "@"),

    // ONLINE oriented items

    ONLINE_WEBSITE("Website", "Website URL", "url", "www", "Homepage", "Homepage URL", "Blog URL", "Blog", "Web"),

    ONLINE_TWITTER("Twitter ID", "Twitter", "Twitter account"),

    ONLINE_FACEBOOK("Facebook ID", "Facebook", "Facebook account"),

    ONLINE_LINKEDIN("LinkedIn ID", "LinkedIn", "LinkedIn account"),;

    private final String _name;
    private final String[] _aliases;

    // Used for all the fields that are also available for input
    ColumnMeaning(final String name, final String... aliases) {
        _name = name;
        if (aliases == null) {
            _aliases = new String[0];
        } else {
            _aliases = aliases;
        }
    }

    @Override
    public String getName() {
        return _name;
    }

    @Override
    public String[] getAliases() {
        return _aliases;
    }

    @Override
    public String toString() {
        return getName();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy