class DataProfileServiceImpl extends AbstractJargonService implements DataProfileService {

	@Override
	@SuppressWarnings("rawtypes")
	public DataProfile retrieveDataProfile(final String irodsAbsolutePath)
			throws FileNotFoundException, JargonException {

		log.info("retrieveDataProfile()");

		if (irodsAbsolutePath == null || irodsAbsolutePath.isEmpty()) {
			throw new IllegalArgumentException("null or empty irodsAbsolutePath");
		}

		log.info("irodsAbsolutePath:{}", irodsAbsolutePath);

		CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = getIrodsAccessObjectFactory()
				.getCollectionAndDataObjectListAndSearchAO(getIrodsAccount());
		log.info("getting objStat...");

		ObjStat objStat = collectionAndDataObjectListAndSearchAO.retrieveObjectStatForPath(irodsAbsolutePath);

		if (objStat.isSomeTypeOfCollection()) {
			return retrieveDataProfileForCollection(irodsAbsolutePath, objStat);
		} else {
			return retrieveDataProfileForDataObject(irodsAbsolutePath, objStat);
		}

	}

	public  DataProfileServiceImpl(final IRODSAccessObjectFactory irodsAccessObjectFactory,
			final IRODSAccount irodsAccount, final DataTypeResolutionService dataTypeResolutionService);
	public  DataProfileServiceImpl();

}