List of usage examples for java.util.concurrent.locks Lock lock
lock
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(); } }