class ServerId implements Serializable {

	public static ServerId of(String value) {
		Iterable<String> parts = Splitter.on(SERVER_ID_SEPARATOR).split(value);
		if (Iterables.size(parts) > 2) {
			throw new InvalidServerId("Too many parts for a serverId");
		}
		Iterator<String> iterator = parts.iterator();
		return of(getCollectionId(iterator, value), getItemId(iterator));	
	}

	private  ServerId(CollectionId collectionId, Integer itemId);

}