private CtLiteral generateLiteral(spindle.core.dom.Literal literal) {
		CtLiteral cLiteral = objectFactory.createCtLiteral();
		if (literal.isNegation()) {
			CtLiteral.Not cNegLiteral = objectFactory.createCtLiteralNot();
			cNegLiteral.setAtom(literal.getName());
			cLiteral.getNot().add(cNegLiteral);
		} else {
			cLiteral.setAtom(literal.getName());
		}

		spindle.core.dom.Mode mode = literal.getMode();
		if (null != mode && !"".equals(mode.getName())) {
			if (mode.isNegation()) {
				CtLiteral.Not cNegMode = objectFactory.createCtLiteralNot();
				cNegMode.setMode(mode.getName());
				cLiteral.getNot().add(cNegMode);
			} else {
				cLiteral.setMode(mode.getName());
			}
		}

		spindle.core.dom.Temporal temporal = literal.getTemporal();
		if (null != temporal && temporal.hasTemporalInfo()) {
			CtInterval cInterval = objectFactory.createCtInterval();
			if (Long.MIN_VALUE != temporal.getStartTime()) cInterval.setStart(temporal.getStartTime());
			if (Long.MAX_VALUE != temporal.getEndTime()) cInterval.setEnd(temporal.getEndTime());
			cLiteral.setInterval(cInterval);
		}

		CtPredicates cPredicates = generatePredicates(literal.getPredicates());
		if (null != cPredicates) cLiteral.setPredicates(cPredicates);

		return cLiteral;
	}