/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.api.plugin.ext.userstore; import java.util.Date; import java.util.Locale; import java.util.TimeZone; import com.enonic.cms.api.client.model.user.Address; import com.enonic.cms.api.client.model.user.Gender; public enum UserFieldType { FIRST_NAME( String.class ), LAST_NAME( String.class ), MIDDLE_NAME( String.class ), NICK_NAME( String.class ), BIRTHDAY( Date.class ), COUNTRY( String.class ), DESCRIPTION( String.class ), INITIALS( String.class ), GLOBAL_POSITION( String.class ), HTML_EMAIL( Boolean.class ), LOCALE( Locale.class ), PERSONAL_ID( String.class ), MEMBER_ID( String.class ), ORGANIZATION( String.class ), PHONE( String.class ), FAX( String.class ), MOBILE( String.class ), PREFIX( String.class ), SUFFIX( String.class ), TITLE( String.class ), TIME_ZONE( TimeZone.class ), HOME_PAGE( String.class ), ADDRESS( Address.class ), PHOTO( byte[].class ), GENDER( Gender.class ); private final String name; private final Class<?> typeClass; UserFieldType( Class<?> typeClass ) { this.name = name().toLowerCase().replace( "_", "-" ); this.typeClass = typeClass; } public String getName() { return this.name; } public Class<?> getTypeClass() { return this.typeClass; } public boolean isStringBased() { return this.typeClass.equals( String.class ); } public boolean isOfType( Class<?> type ) { return this.typeClass.isAssignableFrom( type ); } public static UserFieldType fromName( final String name ) { for ( UserFieldType value : values() ) { if ( value.getName().equals( name ) ) { return value; } } return null; } }