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