private AbstractConnection connection( ConnectionType type, ItemKey<Connection> key, DefaultUmlDiagram diagram ) {
		switch( type ){
			case AGGREGATION:
				return new AggregationConnection( diagram, key );
			case COMMENT:
				return new CommentConnection( diagram, key );
			case COMPOSITION:
				return new CompositionConnection( diagram, key );
			case IMPLEMENTATION:
				return new ImplementsConnection( diagram, key );
			case INHERITANCE:
				return new ExtendsConnection( diagram, key );
			case ASSOZIATION:
				return new AssoziationConnection( diagram, key );
			default:
				throw new IllegalStateException( "unknown enumeration constant: " + type );
		}
	}