/*
* Copyright 2016 Sam Sun <me@samczsun.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.samczsun.skype4j.internal.chat;
import com.samczsun.skype4j.chat.BotChat;
import com.samczsun.skype4j.exceptions.ChatNotFoundException;
import com.samczsun.skype4j.exceptions.ConnectionException;
import com.samczsun.skype4j.internal.Factory;
import com.samczsun.skype4j.internal.participants.BotImpl;
import com.samczsun.skype4j.internal.SkypeImpl;
import com.samczsun.skype4j.internal.participants.UserImpl;
import com.samczsun.skype4j.participants.Bot;
import java.util.HashMap;
import java.util.Map;
public class ChatBot extends ChatImpl implements BotChat {
private BotImpl bot;
public ChatBot(SkypeImpl skype, String identity) throws ConnectionException, ChatNotFoundException {
super(skype, identity);
}
@Override
public void addUser(String username) throws ConnectionException {
throw new IllegalArgumentException("Cannot remove user from bot chat");
}
@Override
public void removeUser(String username) {
throw new IllegalArgumentException("Cannot add user to bot chat");
}
@Override
public void load() throws ConnectionException {
BotImpl botImpl = (BotImpl) Factory.createParticipant(getClient(), this, getIdentity());
botImpl.setInfo(getClient().getOrLoadBotInfo(botImpl.getId()));
this.users.put(botImpl.getId().toLowerCase(), botImpl);
UserImpl me = (UserImpl) Factory.createParticipant(getClient(), this, getClient().getId());
this.users.put(me.getId().toLowerCase(), me);
this.bot = botImpl;
}
@Override
public Bot getBot() {
return this.bot;
}
}