1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 /*
22  * Copyright (c) 1999 by Sun Microsystems, Inc.
23  * All rights reserved.
24  *
25  */
26 
27 //  URLAttributeVerifier.java: Parse a service template from a URL
28 //  Author:           James Kempf
29 //  Created On:       Mon Jun 23 11:52:04 1997
30 //  Last Modified By: James Kempf
31 //  Last Modified On: Thu Jun 11 13:24:03 1998
32 //  Update Count:     22
33 //
34 
35 package com.sun.slp;
36 
37 import java.util.*;
38 import java.net.*;
39 import java.io.*;
40 
41 /**
42  * A URLAttributeVerifier object performs service template parsing from
43  * a URL. Most of the work is done by the superclass. This class
44  * takes care of opening the Reader on the URL.
45  *
46  * @author James Kempf
47  *
48  */
49 
50 class URLAttributeVerifier extends AttributeVerifier {
51 
52     /**
53      * Construct a URLAttributeVerifier for the file named in the parameter.
54      *
55      * @param url URL from which to read the template
56      * @exception ServiceLocationException Error code may be:
57      *				       SYSTEM_ERROR
58      *					   when the URL can't be opened or
59      *					   some other i/o error occurs.
60      *					PARSE_ERROR
61      *					    if an error occurs during
62      *					    attribute parsing.
63      */
64 
URLAttributeVerifier(String url)65     URLAttributeVerifier(String url)
66 	throws ServiceLocationException {
67 
68 	super();
69 
70 	initialize(url);
71 
72     }
73 
74     // Open a reader on the URL and initialize the attribute verifier.
75 
initialize(String urlName)76     private void initialize(String urlName)
77 	throws ServiceLocationException {
78 
79 	InputStream is = null;
80 
81 	try {
82 
83 	    // Open the URL.
84 
85 	    URL url = new URL(urlName);
86 
87 	    // Open an input stream on the URL.
88 
89 	    is = url.openStream();
90 
91 	    // Initialize the verifier, by parsing the file.
92 
93 	    super.initialize(new InputStreamReader(is));
94 
95 	} catch (MalformedURLException ex) {
96 
97 	    throw
98 		new ServiceLocationException(
99 				ServiceLocationException.INTERNAL_SYSTEM_ERROR,
100 				"invalid_url",
101 				new Object[] {urlName});
102 
103 	} catch (IOException ex) {
104 
105 	    throw
106 	  new ServiceLocationException(
107 				ServiceLocationException.INTERNAL_SYSTEM_ERROR,
108 				"url_ioexception",
109 				new Object[] { urlName, ex.getMessage()});
110 
111 	}
112 
113 	try {
114 
115 	    is.close();
116 
117 	} catch (IOException ex) {
118 
119 	}
120 
121     }
122 }
123