public CBaseEntityCondition GetSpecialCondition(
     int nLine,
     String value,
     CBaseEntityCondition.EConditionType type,
     CBaseEntityFactory factory) {
   CEntityCondIsConstant eCond = factory.NewEntityCondIsConstant();
   if (value.equals("ZERO") || value.equals("ZEROS") || value.equals("ZEROES")) {
     eCond.SetIsZero(this);
   }
   /*else if (value.equals("SPACES") && type == CBaseEntityCondition.EConditionType.IS_GREATER_THAN)
   {
   	CEntityCondCompare comp = factory.NewEntityCondCompare() ;
   	comp.SetGreaterThan(factory.NewEntityExprTerminal(this),
   					factory.NewEntityExprTerminal(factory.NewEntityConstant(CEntityConstant.Value.SPACES))) ;
   	RegisterVarTesting(comp) ;
   	return comp ;
   }*/
   else if (value.equals("SPACE") || value.equals("SPACES")) {
     eCond.SetIsSpace(this);
   } else if (value.equals("LOW-VALUE") || value.equals("LOW-VALUES")) // CT Added for full support
   {
     eCond.SetIsLowValue(this);
   } else if (value.equals("HIGH-VALUE") || value.equals("HIGH-VALUES")) {
     eCond.SetIsHighValue(this);
   }
   //		else if (m_Type.equals("picX"))
   //		{
   //			try
   //			{
   //				int n = Integer.parseInt(value) ;
   //				if (type == CBaseEntityCondition.EConditionType.IS_DIFFERENT)
   //				{
   //					CEntityCondEquals cond = factory.NewEntityCondEquals() ;
   //					cond.SetDifferentCondition(factory.NewEntityExprTerminal(this),
   // factory.NewEntityExprTerminal(factory.NewEntityString(value))) ;
   //					m_logger.info("line "+getLine()+" : numeric value converted to string to compare with
   // PICX var : " + value) ;
   //					return cond ;
   //				}
   //				else if (type == CBaseEntityCondition.EConditionType.IS_EQUAL)
   //				{
   //					CEntityCondEquals cond = factory.NewEntityCondEquals() ;
   //					cond.SetEqualCondition(factory.NewEntityExprTerminal(this),
   // factory.NewEntityExprTerminal(factory.NewEntityString(value))) ;
   //					m_logger.info("line "+getLine()+" : numeric value converted to string to compare with
   // PICX var : " + value) ;
   //					return cond ;
   //				}
   //				else
   //				{
   //					m_logger.info("line "+getLine()+" : numeric value to compare with EDIT var not managed :
   // " + value) ;
   //					return null ;
   //				}
   //			}
   //			catch (NumberFormatException e)
   //			{
   //				return null ;
   //			}
   //		}
   else {
     return null;
   }
   RegisterVarTesting(eCond);
   if (type == CBaseEntityCondition.EConditionType.IS_DIFFERENT) {
     eCond.SetOpposite();
     return eCond;
   } else if (type == CBaseEntityCondition.EConditionType.IS_EQUAL) {
     return eCond;
   } else if (type == CBaseEntityCondition.EConditionType.IS_LESS_THAN
       && (value.equals("HIGH-VALUE") || value.equals("HIGH-VALUES"))) // CT Added for full support
   {
     eCond.SetOpposite();
     return eCond;
   } else if (type == CBaseEntityCondition.EConditionType.IS_GREATER_THAN
       && (value.equals("LOW-VALUE") || value.equals("LOW-VALUES"))) // CT Added for full support
   {
     eCond.SetOpposite();
     return eCond;
   } else {
     return null;
   }
 }