public ILocationData getMergedAssociatedLocation() {
		List<ILocationData> allData = getAssociatedLocations();
		if (allData.isEmpty()) {
			return null;
		}
		if (allData.size() == 1) {
			return allData.get(0);
		}
		boolean allNull = true;
		SourceRelativeURI path = null;
		ITextRegionWithLineInformation region = ITextRegionWithLineInformation.EMPTY_REGION;
		for (ILocationData data : allData) {
			if (path != null) {
				if (!path.equals(data.getSrcRelativePath())) {
					return null;
				}
			} else {
				if (data.getSrcRelativePath() == null) {
					if (!allNull)
						throw new IllegalStateException(
								"Iff multiple associated locations are present, the path has to be set");
				} else {
					allNull = false;
					path = data.getSrcRelativePath();
				}
			}
			region = region.merge(new TextRegionWithLineInformation(data.getOffset(), data.getLength(),
					data.getLineNumber(), data.getEndLineNumber()));
		}
		return new LocationData(region.getOffset(), region.getLength(), region.getLineNumber(),
				region.getEndLineNumber(), path);
	}
public ILocationData getMergedAssociatedLocation ( ) { List < ILocationData > allData = getAssociatedLocations ( ) ; if ( allData . isEmpty ( ) ) { return null ; } if ( allData . size ( ) == 1 ) { return allData . get ( 0 ) ; } boolean allNull = true ; SourceRelativeURI path = null ; ITextRegionWithLineInformation region = ITextRegionWithLineInformation . EMPTY_REGION ; for ( ILocationData data : allData ) { if ( path != null ) { if ( ! path . equals ( data . getSrcRelativePath ( ) ) ) { return null ; } } else { if ( data . getSrcRelativePath ( ) == null ) { if ( ! allNull ) throw new IllegalStateException ( "Iff multiple associated locations are present, the path has to be set" ) ; } else { allNull = false ; path = data . getSrcRelativePath ( ) ; } } region = region . merge ( new TextRegionWithLineInformation ( data . getOffset ( ) , data . getLength ( ) , data . getLineNumber ( ) , data . getEndLineNumber ( ) ) ) ; } return new LocationData ( region . getOffset ( ) , region . getLength ( ) , region . getLineNumber ( ) , region . getEndLineNumber ( ) , path ) ; }
Returns the merged location of all associated locations if they belong to the same resource. Otherwise
<code>null</code> is returned.