class OrganizationalEntity implements Serializable {

    private static final long serialVersionUID = 5333594855427723634L;

    @JsonDeserialize(using = TrimmedStringDeserializer.class)
    private String name;

    @JsonDeserialize(using = TrimmedStringArrayDeserializer.class)
    private String[] urls;

    private List<OrganizationalContact> contacts;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getUrls() {
        return urls;
    }

    public void setUrls(String[] urls) {
        this.urls = urls;
    }

    public List<OrganizationalContact> getContacts() {
        return contacts;
    }

    public void addContact(OrganizationalContact contact) {
        if (this.contacts == null) {
            this.contacts = new ArrayList<>();
        }
        this.contacts.add(contact);
    }

    public void setContacts(List<OrganizationalContact> contacts) {
        this.contacts = contacts;
    }

    @Override
    public boolean equals(final Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        int result = Objects.hash(name, contacts);
        result = 31 * result + Arrays.hashCode(urls);
        return result;
    }

}

        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        final OrganizationalEntity that = (OrganizationalEntity) o;
        return Objects.equals(name, that.name) && Arrays.equals(urls, that.urls) && Objects.equals(contacts, that.contacts);
    
<no_super_class>