View Javadoc
1   /*
2     (C) Copyright IBM Corp. 2007, 2009
3   
4     THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
5     ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
6     CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
7   
8     You can obtain a current copy of the Eclipse Public License from
9     http://www.opensource.org/licenses/eclipse-1.0.php
10  
11    @author : Alexander Wolf-Reber, IBM, a.wolf-reber@de.ibm.com
12   * 
13   * Change History
14   * Flag       Date        Prog         Description
15   *------------------------------------------------------------------------------- 
16   * 1678915    2007-03-29  lupusalex    Integrated WBEM service discovery via SLP
17   * 2003590    2008-06-30  blaschke-oss Change licensing from CPL to EPL
18   * 2524131    2009-01-21  raman_arora  Upgrade client to JDK 1.5 (Phase 1)
19   */
20  
21  package org.metricshub.wbem.sblim.cimclient.discovery;
22  
23  /*-
24   * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
25   * WBEM Java Client
26   * ჻჻჻჻჻჻
27   * Copyright 2023 - 2025 MetricsHub
28   * ჻჻჻჻჻჻
29   * Licensed under the Apache License, Version 2.0 (the "License");
30   * you may not use this file except in compliance with the License.
31   * You may obtain a copy of the License at
32   *
33   *      http://www.apache.org/licenses/LICENSE-2.0
34   *
35   * Unless required by applicable law or agreed to in writing, software
36   * distributed under the License is distributed on an "AS IS" BASIS,
37   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
38   * See the License for the specific language governing permissions and
39   * limitations under the License.
40   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
41   */
42  
43  /**
44   * Class WBEMProtocol encapsulates a transport/presentation protocol pair. E.g.
45   * "HTTPS/CIM-XML"
46   *
47   * <code>iTransport != null<br />iPresentation != null</code>
48   * @since 2.0.2
49   */
50  public class WBEMProtocol {
51  	private String iTransport;
52  
53  	private String iPresentation;
54  
55  	/**
56  	 * Ctor.
57  	 *
58  	 * @param pTransport
59  	 *            The transport protocol (e.g. HTTP, HTTPS, RMI)
60  	 * @param pPresentation
61  	 *            The presentation protocol (e.g. CIM-XML)
62  	 */
63  	public WBEMProtocol(String pTransport, String pPresentation) {
64  		this.iTransport = pTransport != null ? pTransport.toUpperCase() : "";
65  		this.iPresentation = pPresentation != null ? pPresentation.toUpperCase() : "";
66  	}
67  
68  	/**
69  	 * Returns the presentation protocol (e.g. CIM-XML)
70  	 *
71  	 * @return The value.
72  	 */
73  	public String getPresentation() {
74  		return this.iPresentation;
75  	}
76  
77  	/**
78  	 * Sets the presentation protocol
79  	 *
80  	 * @param pPresentation
81  	 *            The new value (e.g. CIM-XML)
82  	 */
83  	public void setPresentation(String pPresentation) {
84  		this.iPresentation = pPresentation != null ? pPresentation : "";
85  	}
86  
87  	/**
88  	 * Returns transport protocol (e.g. HTTP)
89  	 *
90  	 * @return The value.
91  	 */
92  	public String getTransport() {
93  		return this.iTransport;
94  	}
95  
96  	/**
97  	 * Sets the transport protocol
98  	 *
99  	 * @param pTransport
100 	 *            The new value (e.g. HTTP).
101 	 */
102 	public void setTransport(String pTransport) {
103 		this.iTransport = pTransport != null ? pTransport : "";
104 	}
105 
106 	/*
107 	 * (non-Javadoc)
108 	 *
109 	 * @see java.lang.Object#equals(java.lang.Object)
110 	 */
111 	@Override
112 	public boolean equals(Object pObj) {
113 		if (pObj instanceof WBEMProtocol) {
114 			WBEMProtocol that = (WBEMProtocol) pObj;
115 			return (this.iTransport.equals(that.iTransport)) && (this.iPresentation.equals(that.iPresentation));
116 		}
117 		return false;
118 	}
119 
120 	/*
121 	 * (non-Javadoc)
122 	 *
123 	 * @see java.lang.Object#hashCode()
124 	 */
125 	@Override
126 	public int hashCode() {
127 		return this.iTransport.hashCode() + this.iPresentation.hashCode();
128 	}
129 
130 	/*
131 	 * (non-Javadoc)
132 	 *
133 	 * @see java.lang.Object#toString()
134 	 */
135 	@Override
136 	public String toString() {
137 		return this.iTransport + "/" + this.iPresentation;
138 	}
139 }