gnu.javax.print.ipp

Class IppRequest


public class IppRequest
extends Object

IppRequest models a request to an IPP compatible server as described in RFC 2910 - IPP/1.1: Encoding and Transport.

The byte stream is structured as follows (for an official description please have a look at the RFC document mentioned above):

Constructor Summary

IppRequest(URI uri, String user, String password)
Creates an IPPRequest instance.

Method Summary

void
addAndFilterJobOperationAttributes(AttributeSet set)
Filters from the given attribute set the job operation out and adds them to the operation attributes set.
void
addAndFilterJobTemplateAttributes(AttributeSet set)
Filters from the given attribute set the job template attributes out and adds them to the job attributes set.
void
addJobAttribute(Attribute attribute)
Add the job attribute of this request to the given attribute set.
void
addOperationAttribute(Attribute attribute)
Adds the given attribute to the operation attributes set.
void
addPrinterAttributes(Attribute attribute)
Sets the printer attribute of this request to the given attribute set.
int
getRequestID()
Returns the id of this request.
IppResponse
send()
Does some validation of the supplied parameters and then sends the request to the ipp server or service.
void
setData(byte[] bytes)
Sets the data of the request.
void
setData(InputStream stream)
Sets the data of the request.
void
setOperationAttributeDefaults()
Adds the default values for the operation attributes "attributes-charset" and "attributes-natural-language"
void
setOperationID(short id)
Sets the operation id for this request.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

IppRequest

public IppRequest(URI uri,
                  String user,
                  String password)
Creates an IPPRequest instance.
Parameters:
uri - the URI of the request
user - the user if any
password - the password of the supplied user

Method Details

addAndFilterJobOperationAttributes

public void addAndFilterJobOperationAttributes(AttributeSet set)
Filters from the given attribute set the job operation out and adds them to the operation attributes set.
Parameters:
set - the attributes to filter, may not be null.

addAndFilterJobTemplateAttributes

public void addAndFilterJobTemplateAttributes(AttributeSet set)
Filters from the given attribute set the job template attributes out and adds them to the job attributes set.
Parameters:
set - the attributes to filter, may not be null.

addJobAttribute

public void addJobAttribute(Attribute attribute)
Add the job attribute of this request to the given attribute set.
Parameters:
attribute - the job attribute.

addOperationAttribute

public void addOperationAttribute(Attribute attribute)
Adds the given attribute to the operation attributes set.
Parameters:
attribute - the operation attribute to add.

addPrinterAttributes

public void addPrinterAttributes(Attribute attribute)
Sets the printer attribute of this request to the given attribute set.
Parameters:
attribute - the printer attribute.

getRequestID

public int getRequestID()
Returns the id of this request.
Returns:
The request ID.

send

public IppResponse send()
            throws IppException,
                   IOException
Does some validation of the supplied parameters and then sends the request to the ipp server or service.
Returns:
The response if any.
Throws:
IllegalStateException - if request is already sent
IppException - if connection or request failed.
IOException - if writing of the header, attributes or footer fails.

setData

public void setData(byte[] bytes)
Sets the data of the request. The data used in this request will be the one of the supplied byte[] instead of the alternative input stream possibility.
Parameters:
bytes - the byte[] to use for the data.

setData

public void setData(InputStream stream)
Sets the data of the request. The data used in this request will be the one of the supplied inputstream instead of the alternative byte array possibility.
Parameters:
stream - the input stream to use for the data.

setOperationAttributeDefaults

public void setOperationAttributeDefaults()
Adds the default values for the operation attributes "attributes-charset" and "attributes-natural-language"

setOperationID

public void setOperationID(short id)
Sets the operation id for this request.
Parameters:
id - the operation id.

IppRequest.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.