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

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

Introduction

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

Prototype

lock

Source Link

Usage

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

public void removeAffair(SocialPerson memberPerson) {
    Lock lock = rwAffairLock.writeLock();
    lock.lock();
    try {//from  w w w. j av a  2s. c o m
        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:org.unitime.timetable.solver.exam.ExamSolver.java

public String assign(ExamAssignment assignment) {
    Lock lock = currentSolution().getLock().writeLock();
    lock.lock();
    try {//from  ww  w  . j  ava  2 s .  c  o m
        Exam exam = getExam(assignment.getExamId());
        if (exam == null)
            return "Examination " + assignment.getExamName() + " not found.";
        ExamPeriodPlacement period = null;
        for (ExamPeriodPlacement p : exam.getPeriodPlacements()) {
            if (p.getId().equals(assignment.getPeriodId())) {
                period = p;
                break;
            }
        }
        if (period == null)
            return "Examination period " + assignment.getPeriodName() + " is not available for examination "
                    + assignment.getExamName() + ".";
        HashSet rooms = new HashSet();
        for (Iterator i = assignment.getRooms().iterator(); i.hasNext();) {
            ExamRoomInfo ri = (ExamRoomInfo) i.next();
            ExamRoomPlacement room = null;
            for (ExamRoomPlacement r : exam.getRoomPlacements()) {
                if (r.getId() == ri.getLocationId()) {
                    room = r;
                    break;
                }
            }
            if (room == null)
                return "Examination room " + ri.getName() + " not found.";
            if (!room.isAvailable(period.getPeriod()))
                return "Examination room " + ri.getName() + " is not available at " + assignment.getPeriodName()
                        + ".";
            rooms.add(room);
        }
        ExamPlacement p = new ExamPlacement(exam, period, rooms);
        Set conflicts = currentSolution().getModel().conflictValues(currentSolution().getAssignment(), p);
        if (conflicts.isEmpty()) {
            ExamPlacement old = currentSolution().getAssignment().getValue(exam);
            currentSolution().getAssignment().assign(0, p);
            Progress.getInstance(currentSolution().getModel()).info(exam.getName() + ": "
                    + (old == null ? "not assigned" : old.getName()) + " → " + p.getName());
            return null;
        } else {
            ExamPlacement other = (ExamPlacement) conflicts.iterator().next();
            return "Selected placement " + p.getName() + " is in conflict with exam "
                    + other.variable().getName() + " that is assigned to " + other.getName() + ".";
        }
    } finally {
        lock.unlock();
    }
}

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

public void createDivorce(SocialPerson memberPerson) {
    Lock lock = rwDivorceLock.writeLock();
    lock.lock();
    try {/*from   w  ww  .j  a  v a 2  s  . c  o  m*/
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.divorce, Type.preAdd, false);

        Divorce divorce = new Divorce(memberName);
        socialDivorce = new SocialDivorce(divorce);
        person.setDivorce(divorce);

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

    } finally {
        lock.unlock();
    }
}

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

public void createMarriage(SocialPerson memberPerson) {
    Lock lock = rwMarriageLock.writeLock();
    lock.lock();
    try {//from w  ww.j a v a2  s. c  o m
        String memberName = memberPerson.getName();
        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.marriage, Type.preAdd, false);

        Marriage marriage = new Marriage(memberName);
        socialMarriage = new SocialMarriage(marriage);
        person.setMarriage(marriage);

        firePlayerMemberChangeEvent(memberName, SocialNetworkCommandType.marriage, 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();
    try {//from   w  ww  . jav  a 2 s.co m
        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 removeAllAlerts() {

    Lock lock = rwMessageQueueLock.writeLock();
    lock.lock();
    try {//www .  ja  v a  2  s .  co  m

        String className = Alert.class.getCanonicalName();
        if (person.getMessageQueue().containsKey(className)) {
            person.getMessageQueue().remove(className);
        }

    } finally {
        lock.unlock();
    }
}

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

public void breakChildOf() {
    Lock lock = rwChildOfLock.writeLock();
    lock.lock();
    try {/*from  w w w. ja  v a2s  .co m*/

        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 addRelationship(SocialPerson memberPerson) {
    Lock lock = rwRelationshipLock.writeLock();
    lock.lock();
    try {//from   ww  w  .j  a  v a  2 s  .co m
        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();
    }
}

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

public void endDivorce() {
    Lock lock = rwDivorceLock.writeLock();
    lock.lock();
    try {/*from   w w  w.j  av a 2s  .  co m*/
        String spouseName = StringUtils.EMPTY;
        if (person.getDivorce() != null) {
            spouseName = person.getDivorce().getPlayerName();
            firePlayerMemberChangeEvent(spouseName, SocialNetworkCommandType.divorce, Type.preRemove, true);
        }

        person.setDivorce(null);
        socialDivorce = null;

        if (StringUtils.isNotEmpty(spouseName)) {
            firePlayerMemberChangeEvent(spouseName, SocialNetworkCommandType.divorce, Type.postRemove, true);
        }

    } finally {
        lock.unlock();
    }
}

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

public Set<String> getMessagePlayers(Class<? extends IMessage> messageClass) {

    Lock lock = rwMessageQueueLock.readLock();
    lock.lock();
    try {/* w ww  . ja v  a 2 s  .c  o m*/
        String className = messageClass.getCanonicalName();
        if (person.getMessageQueue().get(className) != null) {
            return Collections.unmodifiableSet(person.getMessageQueue().get(className).keySet());
        }

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

    } finally {
        lock.unlock();
    }
}