All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.juneau.parser.InputStreamParser Maven / Gradle / Ivy

There is a newer version: 9.0.1
Show newest version
// ***************************************************************************************************************************
// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
// * with the License.  You may obtain a copy of the License at                                                              *
// *                                                                                                                         *
// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
// *                                                                                                                         *
// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
// * specific language governing permissions and limitations under the License.                                              *
// ***************************************************************************************************************************
package org.apache.juneau.parser;

import org.apache.juneau.*;

/**
 * Subclass of {@link Parser} for byte-based parsers.
 *
 * 
Description
* * This class is typically the parent class of all byte-based parsers. * It has 1 abstract method to implement... *
    *
  • parse(InputStream, ClassMeta, Parser) *
*/ public abstract class InputStreamParser extends Parser { //------------------------------------------------------------------------------------------------------------------- // Configurable properties //------------------------------------------------------------------------------------------------------------------- private static final String PREFIX = "InputStreamParser."; /** * Configuration property: Binary input format. * *
Property:
*
    *
  • Name: "InputStreamParser.binaryFormat.s" *
  • Data type: {@link BinaryFormat} *
  • Default: {@link BinaryFormat#HEX} *
  • Session property: false *
  • Methods: *
      *
    • {@link InputStreamParserBuilder#binaryFormat(BinaryFormat)} *
    *
* *
Description:
*

* When using the {@link #parse(Object,Class)} method on stream-based parsers and the input is a string, this defines the format to use * when converting the string into a byte array. * * *

Example:
*

* // Create a parser that parses from BASE64. * InputStreamParser p = MsgPackParser * .create() * .binaryFormat(BASE64) * .build(); * * // Same, but use property. * InputStreamParser p = MsgPackParser * .create() * .set(ISPARSER_binaryFormat, "BASE64") * .build(); *

*/ public static final String ISPARSER_binaryFormat = PREFIX + "binaryFormat.s"; static final InputStreamParser DEFAULT = new InputStreamParser(PropertyStore.create().build(), "") { @Override public InputStreamParserSession createSession(ParserSessionArgs args) { throw new NoSuchMethodError(); } }; //------------------------------------------------------------------------------------------------------------------- // Instance //------------------------------------------------------------------------------------------------------------------- private final BinaryFormat binaryFormat; /** * Constructor. * * @param ps The property store containing all the settings for this object. * @param consumes The list of media types that this parser consumes (e.g. "application/json"). */ protected InputStreamParser(PropertyStore ps, String...consumes) { super(ps, consumes); binaryFormat = getProperty(ISPARSER_binaryFormat, BinaryFormat.class, BinaryFormat.HEX); } @Override /* Parser */ public final boolean isReaderParser() { return false; } //----------------------------------------------------------------------------------------------------------------- // Properties //----------------------------------------------------------------------------------------------------------------- /** * Configuration property: Binary input format. * * @see #ISPARSER_binaryFormat * @return * The format to use when converting strings to byte arrays. */ protected final BinaryFormat getBinaryFormat() { return binaryFormat; } @Override /* Context */ public ObjectMap asMap() { return super.asMap() .append("InputStreamParser", new ObjectMap() .append("binaryFormat", binaryFormat) ); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy