@Override
    public boolean equals(final Object o) {
        if(this == o) {
            return true;
        }
        if(!(o instanceof Application)) {
            return false;
        }
        final Application that = (Application) o;
        if(!Objects.equals(identifier, that.identifier)) {
            return false;
        }
        return true;
    }
@Test
    public void testEquals() {
        assertEquals(new Application("com.apple.textedit"), new Application("com.apple.textedit"));
        assertEquals(new Application("com.apple.textedit"), new Application("com.apple.textedit", "TextEdit"));
        assertEquals(new Application("com.apple.textedit"), new Application("com.apple.TextEdit"));
        assertEquals(new Application("com.apple.textedit"), new Application("com.apple.TextEdit", "TextEdit"));
    }