class JPlogPDescriptor extends AbstractMolecularDescriptor implements IMolecularDescriptor {

	@Override
	public DescriptorValue calculate(IAtomContainer container) {
		IAtomContainer struct;
		try {
			struct = (IAtomContainer) container.clone();
			AtomContainerManipulator.percieveAtomTypesAndConfigureUnsetProperties(struct);
			CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(struct.getBuilder());
			hAdder.addImplicitHydrogens(struct);
			AtomContainerManipulator.convertImplicitToExplicitHydrogens(struct);
			Aromaticity.cdkLegacy().apply(struct);
		} catch (CloneNotSupportedException e) {
			return getDummyDescriptorValue(e);
		} catch (CDKException e) {
			return getDummyDescriptorValue(e);
		}


		return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new DoubleResult(jplogp.calcLogP(struct)),
				getDescriptorNames());
	}

	public  JPlogPDescriptor();

}