import javax.management.openmbean.CompositeData;

public class Name {
    private String first;
    private String last;

    public static Name from(CompositeData cd) {
        if (cd == null) {
            return null;
        }

        if (cd instanceof NameCompositeData) {
            return ((NameCompositeData)cd).getName();
        } else {
            return new Name(cd);
        }
    }

    public Name(CompositeData cd) {
        NameCompositeData.validateCompositeData(cd);

        this.first = NameCompositeData.getFirst(cd);
        this.last = NameCompositeData.getLast(cd);
    }
    
    public Name(String first, String last) {
        this.first = first;
        this.last = last;
    }

    public String getFirstName() {
        return first;
    }

    public String getLastName() {
        return last;
    }
}

