Example usage for java.util.concurrent.locks Lock unlock

List of usage examples for java.util.concurrent.locks Lock unlock

Introduction

In this page you can find the example usage for java.util.concurrent.locks Lock unlock.

Prototype

void unlock();

Source Link

Document

Releases the lock.

Usage

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public <U extends IMessage> int getMessagesCount(Class<U> messageClass) {

    Lock lock = rwMessageQueueLock.readLock();
    lock.lock();/*from ww w.  j a  v a2s.co  m*/
    try {

        int count = 0;
        String className = messageClass.getCanonicalName();
        if (person.getMessageQueue().containsKey(className)) {
            Set<String> senders = person.getMessageQueue().get(className).keySet();
            for (String sender : senders) {
                count += person.getMessageQueue().get(className).get(sender).size();
            }
        }

        return count;

    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void removeChild(SocialPerson memberPerson) {
    Lock lock = rwChildLock.writeLock();
    lock.lock();// w w  w .j a v  a  2s  .  c o  m
    try {
        firePlayerMemberChangeEvent(memberPerson.getName(), SocialNetworkCommandType.child, Type.preRemove,
                (person.getChildren().size() == 0));

        person.getChildren().remove(memberPerson.getName());
        children.remove(memberPerson.getName());

        firePlayerMemberChangeEvent(memberPerson.getName(), SocialNetworkCommandType.child, Type.postRemove,
                (person.getChildren().size() == 0));
    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void addChild(SocialPerson memberPerson) {
    Lock lock = rwChildLock.writeLock();
    lock.lock();/*from   ww  w  .j  ava  2 s . c o m*/
    try {
        firePlayerMemberChangeEvent(memberPerson.getName(), SocialNetworkCommandType.child, Type.preAdd, false);

        Child child = new Child(memberPerson.getName());
        person.getChildren().put(memberPerson.getName(), child);
        children.put(memberPerson.getName(), new SocialChild(child));

        firePlayerMemberChangeEvent(memberPerson.getName(), SocialNetworkCommandType.child, Type.postAdd,
                false);
    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void createEngagement(SocialPerson memberPerson) {
    Lock lock = rwEngagementLock.writeLock();
    lock.lock();//from   ww  w  . j  a va 2  s.c om
    try {
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.engagement, Type.preAdd, false);

        Engagement engagement = new Engagement(memberName);
        socialEngagement = new SocialEngagement(engagement);
        person.setEngagement(engagement);

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.engagement, Type.postAdd, false);

    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void removeFriend(SocialPerson memberPerson) {
    Lock lock = rwFriendLock.writeLock();
    lock.lock();//www  . ja va  2s.com
    try {
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.friend, Type.preRemove,
                (person.getFriends().size() == 0));

        person.getFriends().remove(memberName);
        friends.remove(memberName);

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.friend, Type.postRemove,
                (person.getFriends().size() == 0));
    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void removeAffair(SocialPerson memberPerson) {
    Lock lock = rwAffairLock.writeLock();
    lock.lock();//  www  . j a  v  a  2  s. c o  m
    try {
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.affair, Type.preRemove,
                (person.getAffairs().size() == 0));

        person.getAffairs().remove(memberName);
        affairs.remove(memberName);

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.affair, Type.postRemove,
                (person.getAffairs().size() == 0));
    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

/**
 * Returns all the messages of the given type.
 * @param messageClass//from www  .java 2  s  . co m
 * @return
 */
@SuppressWarnings("unchecked")
public <U extends IMessage> Map<String, List<U>> getMessages(Class<U> messageClass) {

    Lock lock = rwMessageQueueLock.readLock();
    lock.lock();
    try {

        String className = messageClass.getCanonicalName();
        if (person.getMessageQueue().containsKey(className)) {

            Map<String, List<U>> map = new HashMap<String, List<U>>(
                    (Map<? extends String, ? extends List<U>>) person.getMessageQueue().get(className));
            return Collections.unmodifiableMap(map);
        }

        // return an empty list
        return Collections.emptyMap();

    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void breakChildOf() {
    Lock lock = rwChildOfLock.writeLock();
    lock.lock();/*from  www .  j ava  2 s. c  o m*/
    try {

        String childOf = StringUtils.EMPTY;
        if (person.getChildOf() != null) {
            childOf = person.getChildOf();
            firePlayerMemberChangeEvent(childOf, SocialNetworkCommandType.child, Type.preRemove, true);
        }

        person.setChildOf(null);

        if (StringUtils.isNotEmpty(childOf)) {
            firePlayerMemberChangeEvent(childOf, SocialNetworkCommandType.child, Type.postRemove, true);
        }

    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void removeRelationship(SocialPerson memberPerson) {
    Lock lock = rwRelationshipLock.writeLock();
    lock.lock();// w  w w. j a  v  a2  s .c  om
    try {
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.relationship, Type.preRemove,
                (person.getRelationships().size() == 0));

        person.getRelationships().remove(memberName);
        relationships.remove(memberName);

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.relationship, Type.postRemove,
                (person.getRelationships().size() == 0));
    } finally {
        lock.unlock();
    }
}

From source file:com.netprogs.minecraft.plugins.social.SocialPerson.java

public void addRelationship(SocialPerson memberPerson) {
    Lock lock = rwRelationshipLock.writeLock();
    lock.lock();/* w w  w.  ja  v a  2s  . com*/
    try {
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.relationship, Type.preAdd, false);

        Relationship relationship = new Relationship(memberName);
        person.getRelationships().put(memberName, relationship);
        relationships.put(memberName, new SocialRelationship(relationship));

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.relationship, Type.postAdd, false);
    } finally {
        lock.unlock();
    }
}