/** * Copyright (c) 2002-2012 "Neo Technology," * Network Engine for Objects in Lund AB [http://neotechnology.com] * * This file is part of Neo4j. * * Neo4j is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.neo4j.consistency.checking.incremental; import org.neo4j.consistency.RecordType; import org.neo4j.consistency.checking.AbstractStoreProcessor; import org.neo4j.consistency.checking.RecordCheck; import org.neo4j.consistency.report.ConsistencyReport; import org.neo4j.kernel.impl.nioneo.store.DynamicRecord; import org.neo4j.kernel.impl.nioneo.store.NodeRecord; import org.neo4j.kernel.impl.nioneo.store.PropertyIndexRecord; import org.neo4j.kernel.impl.nioneo.store.PropertyRecord; import org.neo4j.kernel.impl.nioneo.store.RecordStore; import org.neo4j.kernel.impl.nioneo.store.RelationshipRecord; import org.neo4j.kernel.impl.nioneo.store.RelationshipTypeRecord; class StoreProcessor extends AbstractStoreProcessor { private final ConsistencyReport.Reporter report; StoreProcessor( ConsistencyReport.Reporter report ) { this.report = report; } @Override protected void checkNode( RecordStore<NodeRecord> store, NodeRecord node, RecordCheck<NodeRecord, ConsistencyReport.NodeConsistencyReport> checker ) { report.forNodeChange( store.forceGetRaw( node ), node, checker ); } @Override protected void checkRelationship( RecordStore<RelationshipRecord> store, RelationshipRecord rel, RecordCheck<RelationshipRecord, ConsistencyReport.RelationshipConsistencyReport> checker ) { report.forRelationshipChange( store.forceGetRaw( rel ), rel, checker ); } @Override protected void checkProperty( RecordStore<PropertyRecord> store, PropertyRecord property, RecordCheck<PropertyRecord, ConsistencyReport.PropertyConsistencyReport> checker ) { report.forPropertyChange( store.forceGetRaw( property ), property, checker ); } @Override protected void checkRelationshipLabel( RecordStore<RelationshipTypeRecord> store, RelationshipTypeRecord record, RecordCheck<RelationshipTypeRecord, ConsistencyReport.LabelConsistencyReport> checker ) { report.forRelationshipLabelChange( store.forceGetRaw( record ), record, checker ); } @Override protected void checkPropertyIndex( RecordStore<PropertyIndexRecord> store, PropertyIndexRecord record, RecordCheck<PropertyIndexRecord, ConsistencyReport.PropertyKeyConsistencyReport> checker ) { report.forPropertyKeyChange( store.forceGetRaw( record ), record, checker ); } @Override protected void checkDynamic( RecordType type, RecordStore<DynamicRecord> store, DynamicRecord string, RecordCheck<DynamicRecord, ConsistencyReport.DynamicConsistencyReport> checker ) { report.forDynamicBlockChange( type, store.forceGetRaw( string ), string, checker ); } }