class CloudnamePath {

    @Override
    public boolean equals(final Object other) {
        if (other == null || !(other instanceof CloudnamePath)) {
            return false;
        }
        final CloudnamePath otherPath = (CloudnamePath) other;
        return Arrays.deepEquals(otherPath.pathElements, pathElements);
    }

    public  CloudnamePath(final String[] pathElements);
    public  CloudnamePath(final CloudnamePath path, final String additionalElement);

}