//
//  TeXDistributionBridge.h
//  TeXDist
//
//  Created by coder on 08/12/06.
//  Copyright 2006 Laurens'Tribune. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "TeXDistArchitecture.h"
#import "TeXDistSystemVersion.h"

@interface TeXDistributionBridge: NSObject
{
@private
	NSURL * iVarFileURL;
	NSString * iVarDisplayName;
    NSDate * iVarCreationDate;
    NSDate * iVarModificationDate;
	NSArray * iVarArchitectures;
    TeXDistArchitecture * iVarSelectedArchitecture;
    TeXDistArchitecture * iVarActiveArchitecture;
	NSAttributedString * iVarAttributedDescription;
    NSArray * iVarArchitecturePriority;
    TeXDistSystemVersion * iVarMinimumSystemVersion;
    TeXDistSystemVersion * iVarMaximumSystemVersion;
    NSDictionary * iVarMinimumSystemVersionsByArch;
    NSDictionary * iVarMaximumSystemVersionsByArch;
}
- (id)initWithContentsOfURL:(NSURL *)aFileURL andReturnError:(NSError **)RORef;
@property (readonly) NSString * longDescription;
@property (readonly,retain) NSURL * fileURL;
@property (readonly,copy) NSString * displayName;
@property (readonly,copy) NSDate * creationDate;
@property (readonly,copy) NSDate * modificationDate;
@property (readwrite,retain) NSArray * architectures;
@property (readonly) TeXDistArchitecture * preferredArchitecture;
@property (readwrite,retain) TeXDistArchitecture * selectedArchitecture;
@property (readwrite,retain) TeXDistArchitecture * activeArchitecture;
@property (readwrite,retain) NSArray * architecturePriority;
@property (readwrite,retain) TeXDistSystemVersion * minimumSystemVersion;
@property (readwrite,retain) TeXDistSystemVersion * maximumSystemVersion;
@property (readwrite,retain) NSDictionary * minimumSystemVersionsByArch;
@property (readwrite,retain) NSDictionary * maximumSystemVersionsByArch;
- (TeXDistArchitecture *)architectureWithName:(NSString *)aName;
- (TeXDistArchitecture *)architectureWithDestinationPath:(NSString *)aPath;
- (BOOL)validateArchitecturePriority:(id *)ioResult error:(NSError **)RORef;
- (BOOL)validateMinimumSystemVersion:(id *)ioResult error:(NSError **)RORef;
- (BOOL)validateMaximumSystemVersion:(id *)ioResult error:(NSError **)RORef;
- (BOOL)validateMinimumSystemVersionsByArch:(id *)ioResult error:(NSError **)RORef;
- (BOOL)validateMaximumSystemVersionsByArch:(id *)ioResult error:(NSError **)RORef;
@end
