java.text.ParseException#getErrorOffset ( )源码实例Demo

下面列出了java.text.ParseException#getErrorOffset ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: hop   文件: ValueMetaBase.java
public synchronized Date convertStringToDate( String string ) throws HopValueException {
  string = Const.trimToType( string, getTrimType() ); // see if trimming needs
  // to be performed before
  // conversion

  if ( Utils.isEmpty( string ) ) {
    return null;
  }

  try {
    ParsePosition pp = new ParsePosition( 0 );
    Date result = getDateFormat( TYPE_DATE ).parse( string, pp );
    if ( pp.getErrorIndex() >= 0 ) {
      // error happen
      throw new ParseException( string, pp.getErrorIndex() );
    }
    // some chars can be after pp.getIndex(). That means, not full value was parsed. For example, for value
    // "25-03-1918 11:54" and format "dd-MM-yyyy", value will be "25-03-1918 00:00" without any exception.
    // If there are only spaces after pp.getIndex() - that means full values was parsed
    return result;
  } catch ( ParseException e ) {
    String dateFormat = ( getDateFormat() != null ) ? getDateFormat().toPattern() : "null";
    throw new HopValueException( toString() + " : couldn't convert string [" + string
      + "] to a date using format [" + dateFormat + "] on offset location " + e.getErrorOffset(), e );
  }
}
 
源代码2 项目: wasindoor   文件: DateUtil.java
/**
 * This method converts a String to a date using the datePattern
 * 
 * @param strDate
 *            the date to convert (in format MM/dd/yyyy)
 * @return a date object
 * 
 * @throws ParseException
 */
public static Date convertStringToDate(String strDate)
		throws ParseException {
	Date aDate = null;

	try {

		aDate = convertStringToDate(getDatePattern(), strDate);
	} catch (ParseException pe) {

		pe.printStackTrace();
		throw new ParseException(pe.getMessage(), pe.getErrorOffset());
	}

	return aDate;
}
 
源代码3 项目: pentaho-kettle   文件: ValueMetaBase.java
protected synchronized Date convertStringToDate( String string ) throws KettleValueException {
  string = Const.trimToType( string, getTrimType() ); // see if trimming needs
  // to be performed before
  // conversion

  if ( Utils.isEmpty( string ) ) {
    return null;
  }

  try {
    ParsePosition pp = new ParsePosition( 0 );
    Date result = getDateFormat( TYPE_DATE ).parse( string, pp );
    if ( pp.getErrorIndex() >= 0 ) {
      // error happen
      throw new ParseException( string, pp.getErrorIndex() );
    }
    // some chars can be after pp.getIndex(). That means, not full value was parsed. For example, for value
    // "25-03-1918 11:54" and format "dd-MM-yyyy", value will be "25-03-1918 00:00" without any exception.
    // If there are only spaces after pp.getIndex() - that means full values was parsed
    return result;
  } catch ( ParseException e ) {
    String dateFormat = ( getDateFormat() != null ) ? getDateFormat().toPattern() : "null";
    throw new KettleValueException( toString() + " : couldn't convert string [" + string
        + "] to a date using format [" + dateFormat + "] on offset location " + e.getErrorOffset(), e );
  }
}
 
源代码4 项目: sakai   文件: EventQueryServiceImpl.java
/**
 * Parses the string to create a date object
 */
private Date getDateFromString(String dateString) throws ParseException {

	try {
		Date date = df.parse(dateString);
		return date;
	} catch (ParseException e) {
		log.warn("Date format should be yyyy-MM-dd HH:mm:ss");
		throw new ParseException("Date format should be yyyy-MM-dd HH:mm:ss",e.getErrorOffset());
	}

}
 
源代码5 项目: ant-ivy   文件: ManifestHeaderValue.java
public static void writeParseException(PrintStream out, String source, ParseException e) {
    out.println(e.getMessage());
    out.print("   " + source + "\n   ");
    for (int i = 0; i < e.getErrorOffset(); i++) {
        out.print(' ');
    }
    out.println('^');
}
 
源代码6 项目: sakai   文件: EventQueryServiceImpl.java
/**
 * Parses the string to create a date object
 */
private Date getDateFromString(String dateString) throws ParseException {

	try {
		Date date = df.parse(dateString);
		return date;
	} catch (ParseException e) {
		log.warn("Date format should be yyyy-MM-dd HH:mm:ss");
		throw new ParseException("Date format should be yyyy-MM-dd HH:mm:ss",e.getErrorOffset());
	}

}
 
源代码7 项目: bluima   文件: Launcher.java
/**
 * Parse this pipeline and run it
 * 
 * @return true if no error during processing
 * @throws ParseException
 */
public static void runPipeline(File scriptFile, List<String> cliArgs)
        throws IOException, UIMAException, ParseException {
    if (!scriptFile.exists()) {
        throw new IOException("Script file does not exist ("
                + scriptFile.getAbsolutePath() + ")");
    }

    LOG.info("Parsing pipeline script at '{}'",
            scriptFile.getAbsolutePath() + " \n with CLI parameters: "
                    + join(cliArgs, ", "));
    Pipeline pipeline = null;
    try {
        pipeline = PipelineScriptParser.parse(scriptFile, cliArgs);
    } catch (ParseException e) {
        throw new ParseException("\nERROR parsing '" + scriptFile.getName()
                + "'\n" + e.getMessage()
                + "\n(see the README.txt for the pipeline script format)",
                e.getErrorOffset());
    }

    LOG.info("Successfully parsed pipeline script, now starting pipeline...");
    LOG.info("*************************************************************");
    pipeline.run();
    // will be printed if no exception.
    // used in pipeline tests, do not change
    System.out.println(OK_MESSAGE);
}
 
源代码8 项目: birt   文件: ExpressionBuilder.java
/**
 * Validates the current script.
 * 
 * @return <code>true</code> if no error was found, <code>false</code>
 *         otherwise.
 */
protected boolean validateScript( )
{
	if ( sourceViewer == null )
	{
		return false;
	}

	String errorMessage = null;

	try
	{
		new ScriptValidator( sourceViewer ).validate( true, true );
		setMessage( Messages.getString( "ExpressionBuilder.Script.NoError" ), IMessageProvider.INFORMATION ); //$NON-NLS-1$
		return true;
	}
	catch ( ParseException e )
	{
		int offset = e.getErrorOffset( );
		int row = sourceViewer.getTextWidget( ).getLineAtOffset( offset ) + 1;
		int column = offset
				- sourceViewer.getTextWidget( ).getOffsetAtLine( row - 1 )
				+ 1;

		errorMessage = Messages.getFormattedString( "ExpressionBuilder.Script.Error", new Object[]{Integer.toString( row ), Integer.toString( column ), e.getLocalizedMessage( )} ); //$NON-NLS-1$
		return false;
	}
	finally
	{
		setErrorMessage( errorMessage );
	}
}
 
源代码9 项目: bluima   文件: Rabbitify.java
/**
 * @param scriptFile
 *            script file, separated with {@link Rabbitify#BEGIN_RABBITIFY}
 *            and {@link Rabbitify#END_RABBITIFY}
 * @param replacementVars
 *            see {@link PipelineScriptParser#parse()}
 * 
 * @param mode
 *            either sender (the first part of the pipeline), slave (the
 *            middle part of a pipeline) or receiver (the last part of a
 *            pipeline)
 * @param runId
 *            gets used to name the rabbit queues, use 'test' for testing
 * @param timeout
 *            how long to wait (in seconds) before the reader exits the
 *            queue
 */
public static void run(File scriptFile, String[] replacementVars,
        Mode mode, String runId, int timeout) throws IOException,
        ParseException, UIMAException {
    LOG.info("Rabbitifying pipeline script at '{}'",
            scriptFile.getAbsolutePath() + " \n with CLI parameters: "
                    + join(replacementVars, ", "));

    // SPLITTING PIPELINE
    final String pipelineLines = asText(scriptFile);
    checkArgument(pipelineLines.length() > 2);
    // in 3 parts
    final List<String> masterSender, slave, masterReceiver;
    String[] split1 = pipelineLines.split(BEGIN_RABBITIFY);
    checkEquals(2, split1.length);
    masterSender = list(split1[0].split("\n"));
    String[] split2 = split1[1].split(END_RABBITIFY);
    checkEquals(2, split1.length);
    slave = list(split2[0].split("\n"));
    masterReceiver = list(split2[1].split("\n"));

    // preparing script lines
    List<String> lines = list();
    if (mode.equals(sender)) {// MASTER_SENDER PIPELINE

        lines = masterSender;

        // add Rabbit writer
        lines.add("");
        lines.add("ae: " + RabbitWriter.class.getName());
        lines.add(" " + PARAM_QUEUE + ": "
                + getMasterToSlaveQueue(runId + ""));

        lines.add("ae: StatsAnnotatorPlus");
        lines.add(" printEvery__java: 1000");

    } else if (mode.equals(Mode.slave)) { // SLAVE PIPELINE

        // add Rabbit reader
        lines.add("cr: " + RabbitReader.class.getName());
        lines.add(" " + PARAM_QUEUE + ": "
                + getMasterToSlaveQueue(runId + ""));
        lines.add(" " + PARAM_TIMEOUT + "__java: " + timeout);

        lines.add("");
        lines.addAll(slave);
        lines.add("");

        // add Rabbit writer
        lines.add("ae: " + RabbitWriter.class.getName());
        lines.add(" " + PARAM_QUEUE + ": "
                + getSlaveToMasterQueue(runId + ""));

    } else if (mode.equals(receiver)) {// MASTER_RECEIVER PIPELINE

        // add Rabbit reader
        lines.add("cr: " + RabbitReader.class.getName());
        lines.add(" " + PARAM_QUEUE + ": "
                + getSlaveToMasterQueue(runId + ""));
        lines.add(" " + PARAM_TIMEOUT + "__java: " + timeout);

        lines.add("");
        lines.add("threads: 1");
        lines.add("");
        lines.addAll(masterReceiver);
    }

    // RUN PIPELINE
    try {
        LOG.info("Starting Rabbit " + mode);
        Pipeline p = PipelineScriptParser.parse(lines,
                scriptFile.getParent(), list(replacementVars));
        p.run();

    } catch (ParseException e) {
        throw new ParseException("\nERROR parsing " + mode + "\n"
                + e.getMessage()
                + "\n(see the README.txt for the pipeline script format)",
                e.getErrorOffset());
    }
    System.out.println(Launcher.OK_MESSAGE);
}
 
源代码10 项目: birt   文件: ScriptValidator.java
/**
 * Validates the current script, and selects the error if the specified falg
 * is <code>true</code>.
 * 
 * @param isFunctionBody
 *            <code>true</code> if a function body is validated,
 *            <code>false</code> otherwise.
 * @param isErrorSelected
 *            <code>true</code> if error will be selected after
 *            validating, <code>false</code> otherwise.
 * @throws ParseException
 *             if an syntax error is found.
 */
public void validate( boolean isFunctionBody, boolean isErrorSelected )
		throws ParseException
{
	if ( scriptViewer == null )
	{
		return;
	}

	clearAnnotations( );

	StyledText textField = scriptViewer.getTextWidget( );

	if ( textField == null || !textField.isEnabled( ) )
	{
		return;
	}

	String functionTag = "function(){"; //$NON-NLS-1$
	IDocument document = scriptViewer.getDocument( );
	String text = document == null ? null : scriptViewer.getDocument( )
			.get( );

	String script = text;

	if ( isFunctionBody )
	{
		script = functionTag + script + "\n}"; //$NON-NLS-1$
	}

	try
	{
		validateScript( script );
	}
	catch ( ParseException e )
	{
		int offset = e.getErrorOffset( );

		if ( isFunctionBody )
		{
			offset -= functionTag.length( );
			while ( offset >= text.length( ) )
			{
				offset--;
			}
		}

		String errorMessage = e.getLocalizedMessage( );
		Position position = getErrorPosition( text, offset );

		if ( position != null )
		{
			IAnnotationModel annotationModel = scriptViewer.getAnnotationModel( );

			if ( annotationModel != null )
			{
				annotationModel.addAnnotation( new Annotation( IReportGraphicConstants.ANNOTATION_ERROR,
						true,
						errorMessage ),
						position );
			}
			if ( isErrorSelected )
			{
				if ( scriptViewer instanceof SourceViewer )
				{
					( (SourceViewer) scriptViewer ).setSelection( new TextSelection( position.getOffset( ),
							position.getLength( ) ) );
				}
				scriptViewer.revealRange( position.getOffset( ),
						position.getLength( ) );
			}
		}
		throw new ParseException( e.getLocalizedMessage( ), position.offset );
	}
}
 
源代码11 项目: openccg   文件: MappingReader.java
/**
 * Starts reading from the next mapping group.
 * @return The next {@link MappingGroup} found by reading from the underlying reader.
 * @throws IOException If a {@link ParseException} is encountered when calling
 * {@link MappingFormat#parseMapping(String)} based on the underlying input, or if one is thrown by the
 * underlying reader. An IOException is also thrown if the number of mappings in the
 * {@linkplain MappingGroup#getLength() current group} could not be read. 
 */
public MappingGroup nextGroup() throws IOException {
	checkMappingCount();
	mappingCount = 0;
	
	MappingGroup previous = (currentGroup == null) ? null : currentGroup;
	int newCount = mappingQueue.size();
	
	currentGroup = (newCount == 0)
		? null : new MappingGroup(mappingQueue.peek().phraseNumber, newCount);
	
	boolean eog = false;
	
	while(!eog) {
		StringBuilder sb = new StringBuilder();
		
		int i;
		while((i = in.read()) != -1) {
			char c = (char)i;
			
			if(skipLF) {
				skipLF = false;
				if(c == '\n') {
					continue;
				}
			}
			
			if(c == '\r') {
				skipLF = true;
			}
			
			if(format.encodingScheme.isMappingDelimiter(c)) {
				break;
			}
			else if(format.encodingScheme.isGroupDelimiter(c)) {
				eog = true;
				break;
			}
			else {
				sb.append(c); 
			}
		}
		
		if(sb.length() == 0) {
			break; // for EOF and end of group
		}
		
		Mapping a = null;
		try {
			a = format.parseMapping(sb.toString());
		}
		catch(ParseException pe) {
			throw new IOException(((currentGroup == null) ? ""
					: "group " + currentGroup.phraseNumber + ": ") + "problem formatting mapping "
					+ sb.toString() + " at offset " + pe.getErrorOffset() + ": " + pe.getMessage(), pe);
		}
		
		// if the format allows null IDs, use previous's running counter
		if(currentGroup == null) {
			Integer I = (a.phraseNumber == null)
				? (previous == null) ? format.encodingScheme.getPhraseNumberBase().start
						: previous.phraseNumber + 1
				: a.phraseNumber;
			
			currentGroup = new MappingGroup(I, 0);
		}
		
		if(a.phraseNumber == null) {
			// have to copy because phraseNumber is immutable (and final)
			a = a.copyWithPhraseNumber(currentGroup.phraseNumber);
		}
		
		if(!currentGroup.phraseNumber.equals(a.phraseNumber)) {
			eog = true;
		}
		else {
			newCount++; // only increment if should be read
		}			
		
		if(!mappingQueue.offer(a)) { // save for next read
			throw new IOException("unable to read mapping");
		}
	}
	
	if(currentGroup != null) {
		currentGroup.length = newCount;
	}
	
	return (currentGroup == null || currentGroup.length == 0) ? null : currentGroup;
}