DisplayNameMask.java 4.21 KB
package org.legrog.entities;

/**
 * This enumeration provide options for name masking of authors and users.
 * Every {link org.roliste.data.DbMaskableEntity} provide first name, last name and nickname
 * capabilities, that may be "masked", thus shown in some specific way depending on chosen
 * NameMask.
 */
public enum DisplayNameMask
{
    PRENOMNOM("Prénom Nom")
            {
                public String listMask(DisplayNameConfigurable person)
                {
                    return NOMPRENOM.getDisplayName(person);
                }

                public String getDisplayName(DisplayNameConfigurable person)
                {
                    StringBuilder sb = new StringBuilder();
                    if (person.getFirstName() != null)
                    {
                        sb.append(person.getFirstName());
                    }
                    if (person.getLastName() != null)
                    {
                        sb.append(' ');
                        sb.append(person.getLastName());
                    }
                    return sb.toString();
                }
            },

    NOMPRENOM("Nom, Prénom")
            {
                public String listMask(DisplayNameConfigurable person)
                {
                    return NOMPRENOM.getDisplayName(person);
                }

                public String getDisplayName(DisplayNameConfigurable person)
                {
                    StringBuilder sb = new StringBuilder();
                    if (person.getLastName() != null)
                    {
                        sb.append(person.getLastName());
                        if (person.getFirstName() != null)
                        {
                            sb.append(", ");
                            sb.append(person.getFirstName());
                        }
                    }
                    else
                    {
                        sb.append("!Pas de nom");
                    }
                    return sb.toString();
                }
            },

    PSEUDO("Pseudo")
            {
                public String listMask(DisplayNameConfigurable person)
                {
                    return PSEUDO.getDisplayName(person);
                }

                public String getDisplayName(DisplayNameConfigurable person)
                {
                    StringBuilder sb = new StringBuilder();
                    if (person.getNickName() != null)
                    {
                        sb.append(person.getNickName());
                    }
                    else
                    {
                        sb.append("!Pas de pseudo");
                    }
                    return sb.toString();
                }
            },

    COMPLET("Prénom 'Pseudo' Nom")
            {
                public String listMask(DisplayNameConfigurable person)
                {
                    return NOMPRENOM.getDisplayName(person);
                }

                public String getDisplayName(DisplayNameConfigurable person)
                {
                    StringBuffer myResult = new StringBuffer();

                    if (person.getFirstName() != null)
                    {
                        myResult.append(person.getFirstName());
                        myResult.append(' ');
                    }
                    if ( person.getNickName() != null )
                    {
                        myResult.append('\'');
                        myResult.append(person.getNickName());
                        myResult.append('\'');
                        myResult.append(' ');
                    }
                    if (person.getLastName() != null)
                    {
                        myResult.append(person.getLastName());
                    }
                    return myResult.toString();
                }
            };

    private final String symbol;

    private DisplayNameMask(String symbol)
    {
        this.symbol = symbol;
    }

    public String getSymbol()
    {
        return symbol;
    }

    public String toString()
    {
        return symbol;
    }

    public abstract String getDisplayName(DisplayNameConfigurable person);

    public abstract String listMask(DisplayNameConfigurable person);
}