001    /**
002     *
003     * Licensed to the Apache Software Foundation (ASF) under one or more
004     * contributor license agreements.  See the NOTICE file distributed with
005     * this work for additional information regarding copyright ownership.
006     * The ASF licenses this file to You under the Apache License, Version 2.0
007     * (the "License"); you may not use this file except in compliance with
008     * the License.  You may obtain a copy of the License at
009     *
010     * http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    package org.apache.camel.component.irc;
019    
020    import org.apache.camel.RuntimeCamelException;
021    
022    import java.net.URI;
023    
024    public class IrcConfiguration implements Cloneable {
025        String target;
026        String hostname;
027        String password;
028        String nickname;
029        String realname;
030        String username;
031        boolean persistent = true;
032        boolean colors = true;
033        boolean onNick = true;
034        boolean onQuit = true;
035        boolean onJoin = true;
036        boolean onKick = true;
037        boolean onMode = true;
038        boolean onPart = true;
039        boolean onTopic = true;
040        boolean onPrivmsg = true;
041        int[] ports = {6667, 6668, 6669};
042    
043        public IrcConfiguration() {
044        }
045    
046        public IrcConfiguration(String hostname, String nickname, String displayname, String target) {
047            this.target = target;
048            this.hostname = hostname;
049            this.nickname = nickname;
050            this.username = nickname;
051            this.realname = displayname;
052        }
053    
054        public IrcConfiguration(String hostname, String username, String password, String nickname, String displayname, String target) {
055            this.target = target;
056            this.hostname = hostname;
057            this.username = username;
058            this.password = password;
059            this.nickname = nickname;
060            this.realname = displayname;
061        }
062    
063        public IrcConfiguration copy() {
064            try {
065                return (IrcConfiguration) clone();
066            }
067            catch (CloneNotSupportedException e) {
068                throw new RuntimeCamelException(e);
069            }
070        }
071    
072        public String getCacheKey() {
073            return hostname + ":" + nickname;
074        }
075    
076        public void configure(URI uri) {
077            setNickname(uri.getUserInfo());
078            setUsername(uri.getUserInfo());
079            setRealname(uri.getUserInfo());
080            setHostname(uri.getHost());
081            setTarget(uri.getPath().substring(1));
082        }
083    
084        public String getHostname() {
085            return hostname;
086        }
087    
088        public void setHostname(String hostname) {
089            this.hostname = hostname;
090        }
091    
092        public String getPassword() {
093            return password;
094        }
095    
096        public void setPassword(String password) {
097            this.password = password;
098        }
099    
100        public String getNickname() {
101            return nickname;
102        }
103    
104        public void setNickname(String nickname) {
105            this.nickname = nickname;
106        }
107    
108        public String getRealname() {
109            return realname;
110        }
111    
112        public void setRealname(String realname) {
113            this.realname = realname;
114        }
115    
116        public String getUsername() {
117            return username;
118        }
119    
120        public void setUsername(String username) {
121            this.username = username;
122        }
123    
124        public int[] getPorts() {
125            return ports;
126        }
127    
128        public void setPorts(int[] ports) {
129            this.ports = ports;
130        }
131    
132        public String getTarget() {
133            return target;
134        }
135    
136        public void setTarget(String target) {
137            this.target = target;
138        }
139    
140        public boolean isPersistent() {
141            return persistent;
142        }
143    
144        public void setPersistent(boolean persistent) {
145            this.persistent = persistent;
146        }
147    
148        public boolean isColors() {
149            return colors;
150        }
151    
152        public void setColors(boolean colors) {
153            this.colors = colors;
154        }
155    
156        public boolean isOnNick() {
157            return onNick;
158        }
159    
160        public void setOnNick(boolean onNick) {
161            this.onNick = onNick;
162        }
163    
164        public boolean isOnQuit() {
165            return onQuit;
166        }
167    
168        public void setOnQuit(boolean onQuit) {
169            this.onQuit = onQuit;
170        }
171    
172        public boolean isOnJoin() {
173            return onJoin;
174        }
175    
176        public void setOnJoin(boolean onJoin) {
177            this.onJoin = onJoin;
178        }
179    
180        public boolean isOnKick() {
181            return onKick;
182        }
183    
184        public void setOnKick(boolean onKick) {
185            this.onKick = onKick;
186        }
187    
188        public boolean isOnMode() {
189            return onMode;
190        }
191    
192        public void setOnMode(boolean onMode) {
193            this.onMode = onMode;
194        }
195    
196        public boolean isOnPart() {
197            return onPart;
198        }
199    
200        public void setOnPart(boolean onPart) {
201            this.onPart = onPart;
202        }
203    
204        public boolean isOnTopic() {
205            return onTopic;
206        }
207    
208        public void setOnTopic(boolean onTopic) {
209            this.onTopic = onTopic;
210        }
211    
212        public boolean isOnPrivmsg() {
213            return onPrivmsg;
214        }
215    
216        public void setOnPrivmsg(boolean onPrivmsg) {
217            this.onPrivmsg = onPrivmsg;
218        }
219    
220        public String toString() {
221            return "IrcConfiguration{" +
222                    "target='" + target + '\'' +
223                    ", hostname='" + hostname + '\'' +
224                    ", password='" + password + '\'' +
225                    ", nickname='" + nickname + '\'' +
226                    ", realname='" + realname + '\'' +
227                    ", username='" + username + '\'' +
228                    ", persistent=" + persistent +
229                    ", colors=" + colors +
230                    ", onNick=" + onNick +
231                    ", onQuit=" + onQuit +
232                    ", onJoin=" + onJoin +
233                    ", onKick=" + onKick +
234                    ", onMode=" + onMode +
235                    ", onPart=" + onPart +
236                    ", onTopic=" + onTopic +
237                    ", onPrivmsg=" + onPrivmsg +
238                    ", ports=" + ports +
239                    '}';
240        }
241    }