Skip to content

Commit

Permalink
#8 cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
pethers committed Feb 27, 2018
1 parent 96674cb commit 4ae4015
Showing 1 changed file with 31 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;

import org.drools.core.common.DefaultFactHandle;
import org.drools.core.io.impl.ClassPathResource;
import org.kie.api.KieServices;
Expand All @@ -46,28 +48,31 @@
* The Class RulesEngineImpl.
*/
@Service
@Transactional(propagation=Propagation.REQUIRED)
@Transactional(propagation = Propagation.REQUIRED)
public final class RulesEngineImpl implements RulesEngine {

/** The Constant politicianDrlFile. */
private static final String politicianDrlFile = "rules/politician/PoliticianLeftPartyStillHoldingPositions.drl";

private static final String politicianDrlFile2 = "rules/politician/PoliticianTimeToRetire.drl";

private static final String politicianDrlFile3 = "rules/politician/PoliticianBusySchedule.drl";

private static final String politicianDrlFile4 = "rules/politician/PoliticianMinisterWithoutParliamentExperience.drl";

/** The Constant partyDrlFile. */
private static final String partyDrlFile = "rules/party/PartyNoGovernmentExperience.drl";

/** The data viewer. */
@Autowired
@Qualifier("DataViewer")
private DataViewer dataViewer;

@Override
public List<ComplianceCheck> checkRulesCompliance() {
/** The new kie container. */
private KieContainer rulesContainer;

@PostConstruct
public void initRules() {
KieServices kieServices = KieServices.Factory.get();

KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
Expand All @@ -76,21 +81,24 @@ public List<ComplianceCheck> checkRulesCompliance() {
kieFileSystem.write(new ClassPathResource(politicianDrlFile3));
kieFileSystem.write(new ClassPathResource(politicianDrlFile4));
kieFileSystem.write(new ClassPathResource(partyDrlFile));

KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
kieBuilder.buildAll();
KieModule kieModule = kieBuilder.getKieModule();

KieContainer newKieContainer = kieServices.newKieContainer(kieModule.getReleaseId());
rulesContainer = kieServices.newKieContainer(kieModule.getReleaseId());
}

KieSession ksession = newKieContainer.newKieSession();
@Override
public List<ComplianceCheck> checkRulesCompliance() {
KieSession ksession = rulesContainer.newKieSession();
List<ComplianceCheck> complianceChecks = new ArrayList<>();
ksession.addEventListener( new ComplianceCheckAgendaEventListener(complianceChecks));
ksession.addEventListener(new ComplianceCheckAgendaEventListener(complianceChecks));

insertPoliticians(ksession, dataViewer.getAll(ViewRiksdagenPolitician.class));
insertParties(ksession, dataViewer.getAll(ViewRiksdagenPartySummary.class));

ksession.fireAllRules();
ksession.fireAllRules();
ksession.dispose();
return complianceChecks;
}
Expand All @@ -104,10 +112,10 @@ public List<ComplianceCheck> checkRulesCompliance() {
* the list
* @return the list
*/
private void insertPoliticians(KieSession ksession,final List<ViewRiksdagenPolitician> list) {
private void insertPoliticians(KieSession ksession, final List<ViewRiksdagenPolitician> list) {
for (ViewRiksdagenPolitician politicianData : list) {
if (politicianData != null) {
ksession.insert( new PoliticianComplianceCheckImpl( politicianData) );
ksession.insert(new PoliticianComplianceCheckImpl(politicianData));
}
}
}
Expand All @@ -121,11 +129,10 @@ private void insertPoliticians(KieSession ksession,final List<ViewRiksdagenPolit
* the list
* @return the list
*/
private void insertParties(KieSession ksession,
final List<ViewRiksdagenPartySummary> list) {
private void insertParties(KieSession ksession, final List<ViewRiksdagenPartySummary> list) {
for (ViewRiksdagenPartySummary partyData : list) {
if (partyData != null) {
ksession.insert( new PartyComplianceCheckImpl( partyData) );
if (partyData != null) {
ksession.insert(new PartyComplianceCheckImpl(partyData));
}
}
}
Expand All @@ -139,11 +146,12 @@ public ComplianceCheckAgendaEventListener(List<ComplianceCheck> complianceChecks

@Override
public void afterMatchFired(AfterMatchFiredEvent event) {
super.afterMatchFired( event );
AbstractComplianceCheckImpl complianceCheck = (AbstractComplianceCheckImpl) ((DefaultFactHandle)event.getMatch().getFactHandles().iterator().next()).getObject();
complianceCheck.setRuleName(event.getMatch().getRule().getName());
complianceCheck.setRuleDescription(event.getMatch().getRule().getPackageName());
complianceChecks.add(complianceCheck);
super.afterMatchFired(event);
AbstractComplianceCheckImpl complianceCheck = (AbstractComplianceCheckImpl) ((DefaultFactHandle) event
.getMatch().getFactHandles().iterator().next()).getObject();
complianceCheck.setRuleName(event.getMatch().getRule().getName());
complianceCheck.setRuleDescription(event.getMatch().getRule().getPackageName());
complianceChecks.add(complianceCheck);
}
}

Expand Down

0 comments on commit 4ae4015

Please sign in to comment.