Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package walkingkooka.spreadsheet;

import walkingkooka.Binary;
import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyCode;
import walkingkooka.currency.CurrencyExchange;
Expand All @@ -28,6 +29,7 @@
import walkingkooka.math.DecimalNumberSymbols;
import walkingkooka.net.AbsoluteUrl;
import walkingkooka.net.email.EmailAddress;
import walkingkooka.net.header.MediaType;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand Down Expand Up @@ -60,7 +62,13 @@ public class FakeSpreadsheetContext extends FakeSpreadsheetProvider implements S
public FakeSpreadsheetContext() {
super();
}


@Override
public MediaType detect(final String filename,
final Binary content) {
throw new UnsupportedOperationException();
}

@Override
public Optional<StoragePath> currentWorkingDirectory() {
throw new UnsupportedOperationException();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import walkingkooka.currency.CurrencyLocaleContext;
import walkingkooka.environment.EnvironmentContext;
import walkingkooka.net.email.EmailAddress;
import walkingkooka.net.header.MediaTypeDetector;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.HasProviderContext;
Expand Down Expand Up @@ -52,6 +53,7 @@ public interface SpreadsheetContext extends SpreadsheetProvider,
HasSpreadsheetMetadata,
HasSpreadsheetServerUrl,
CurrencyLocaleContext,
MediaTypeDetector,
SpreadsheetMetadataContext {

// SpreadsheetMetadataContext.......................................................................................
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@

package walkingkooka.spreadsheet;

import walkingkooka.Binary;
import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyContext;
import walkingkooka.currency.CurrencyContextDelegator;
import walkingkooka.locale.LocaleContext;
import walkingkooka.locale.LocaleContextDelegator;
import walkingkooka.net.email.EmailAddress;
import walkingkooka.net.header.MediaType;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand Down Expand Up @@ -58,6 +60,16 @@ default Charset charset() {
.charset();
}

@Override
default MediaType detect(final String filename,
final Binary content) {
return this.spreadsheetContext()
.detect(
filename,
content
);
}

@Override
default SpreadsheetStoreRepository storeRepository() {
return this.spreadsheetContext()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@

package walkingkooka.spreadsheet;

import walkingkooka.Binary;
import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyLocaleContext;
import walkingkooka.currency.CurrencyLocaleContextDelegator;
import walkingkooka.currency.CurrencyLocaleContexts;
import walkingkooka.environment.EnvironmentContext;
import walkingkooka.environment.EnvironmentValueName;
import walkingkooka.net.email.EmailAddress;
import walkingkooka.net.header.MediaType;
import walkingkooka.net.header.MediaTypeDetector;
import walkingkooka.plugin.ProviderContext;
import walkingkooka.spreadsheet.convert.SpreadsheetConverterContext;
import walkingkooka.spreadsheet.engine.SpreadsheetEngine;
Expand Down Expand Up @@ -51,7 +54,8 @@ abstract class SpreadsheetContextShared implements SpreadsheetContext,
CurrencyLocaleContextDelegator,
SpreadsheetProviderDelegator {

SpreadsheetContextShared(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
SpreadsheetContextShared(final MediaTypeDetector mediaTypeDetector,
BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetEngineContext spreadsheetEngineContext,
final CurrencyLocaleContext currencyLocaleContext,
Expand All @@ -60,6 +64,8 @@ abstract class SpreadsheetContextShared implements SpreadsheetContext,
final ProviderContext providerContext) {
super();

this.mediaTypeDetector = mediaTypeDetector;

this.multiplier = multiplier;

this.spreadsheetEngine = spreadsheetEngine;
Expand All @@ -80,6 +86,19 @@ public final BinaryNumberConverterFunction<SpreadsheetConverterContext> multipli

final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier;

// MediaTypeDetector................................................................................................

@Override
public final MediaType detect(final String filename,
final Binary binary) {
return this.mediaTypeDetector.detect(
filename,
binary
);
}

final MediaTypeDetector mediaTypeDetector;

// spreadsheetEngine................................................................................................

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyLocaleContext;
import walkingkooka.net.header.MediaTypeDetector;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand All @@ -44,14 +45,16 @@
*/
final class SpreadsheetContextSharedFixedSpreadsheetId extends SpreadsheetContextShared {

static SpreadsheetContextSharedFixedSpreadsheetId with(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
static SpreadsheetContextSharedFixedSpreadsheetId with(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetStoreRepository storeRepository,
final Function<SpreadsheetEngineContext, Router<HttpRequestAttribute<?>, HttpHandler>> httpRouterFactory,
final CurrencyLocaleContext currencyLocaleContext,
final SpreadsheetEnvironmentContext spreadsheetEnvironmentContext,
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
Objects.requireNonNull(mediaTypeDetector, "mediaTypeDetector");
Objects.requireNonNull(multiplier, "multiplier");
Objects.requireNonNull(spreadsheetEngine, "spreadsheetEngine");
Objects.requireNonNull(storeRepository, "storeRepository");
Expand All @@ -62,6 +65,7 @@ static SpreadsheetContextSharedFixedSpreadsheetId with(final BinaryNumberConvert
Objects.requireNonNull(providerContext, "providerContext");

return new SpreadsheetContextSharedFixedSpreadsheetId(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
storeRepository,
Expand All @@ -76,7 +80,8 @@ static SpreadsheetContextSharedFixedSpreadsheetId with(final BinaryNumberConvert
);
}

private SpreadsheetContextSharedFixedSpreadsheetId(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
private SpreadsheetContextSharedFixedSpreadsheetId(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetStoreRepository storeRepository,
final SpreadsheetMetadataContext spreadsheetMetadataContext,
Expand All @@ -88,6 +93,7 @@ private SpreadsheetContextSharedFixedSpreadsheetId(final BinaryNumberConverterFu
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
super(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
spreadsheetEngineContext,
Expand Down Expand Up @@ -166,6 +172,7 @@ SpreadsheetContext replaceEnvironmentContext(final SpreadsheetEngineContext spre
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
return new SpreadsheetContextSharedFixedSpreadsheetId(
this.mediaTypeDetector,
this.multiplier,
this.spreadsheetEngine,
this.storeRepository, // keep
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyLocaleContext;
import walkingkooka.net.header.MediaTypeDetector;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand All @@ -44,14 +45,16 @@
*/
final class SpreadsheetContextSharedMutableSpreadsheetId extends SpreadsheetContextShared {

static SpreadsheetContextSharedMutableSpreadsheetId with(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
static SpreadsheetContextSharedMutableSpreadsheetId with(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetContextSupplier spreadsheetContextSupplier,
final SpreadsheetMetadataContext spreadsheetMetadataContext,
final CurrencyLocaleContext currencyLocaleContext,
final SpreadsheetEnvironmentContext spreadsheetEnvironmentContext,
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
Objects.requireNonNull(mediaTypeDetector, "mediaTypeDetector");
Objects.requireNonNull(multiplier, "multiplier");
Objects.requireNonNull(spreadsheetEngine, "spreadsheetEngine");
Objects.requireNonNull(spreadsheetContextSupplier, "spreadsheetContextSupplier");
Expand All @@ -62,6 +65,7 @@ static SpreadsheetContextSharedMutableSpreadsheetId with(final BinaryNumberConve
Objects.requireNonNull(providerContext, "providerContext");

return new SpreadsheetContextSharedMutableSpreadsheetId(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
spreadsheetContextSupplier,
Expand All @@ -74,7 +78,8 @@ static SpreadsheetContextSharedMutableSpreadsheetId with(final BinaryNumberConve
);
}

private SpreadsheetContextSharedMutableSpreadsheetId(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
private SpreadsheetContextSharedMutableSpreadsheetId(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetContextSupplier spreadsheetContextSupplier,
final SpreadsheetMetadataContext spreadsheetMetadataContext,
Expand All @@ -84,6 +89,7 @@ private SpreadsheetContextSharedMutableSpreadsheetId(final BinaryNumberConverter
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
super(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
spreadsheetEngineContext,
Expand Down Expand Up @@ -124,6 +130,7 @@ public SpreadsheetMetadataContext spreadsheetMetadataContext() {
@Override
SpreadsheetEngineContext createSpreadsheetEngineContext() {
return SpreadsheetEngineContexts.spreadsheetEnvironmentContext(
this.mediaTypeDetector,
this.multiplier,
this.spreadsheetContextSupplier,
this.currencyContext()
Expand Down Expand Up @@ -154,6 +161,7 @@ SpreadsheetContext replaceEnvironmentContext(final SpreadsheetEngineContext spre
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
return new SpreadsheetContextSharedMutableSpreadsheetId(
this.mediaTypeDetector,
this.multiplier,
this.spreadsheetEngine,
this.spreadsheetContextSupplier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import org.junit.jupiter.api.Test;
import walkingkooka.currency.CurrencyLocaleContextTesting2;
import walkingkooka.net.header.MediaTypeDetectorTesting2;
import walkingkooka.plugin.HasProviderContextTesting;
import walkingkooka.spreadsheet.engine.SpreadsheetEngine;
import walkingkooka.spreadsheet.environment.SpreadsheetEnvironmentContextTesting2;
Expand All @@ -35,6 +36,7 @@ public interface SpreadsheetContextTesting<C extends SpreadsheetContext> extends
HasSpreadsheetMetadataTesting,
HasSpreadsheetServerUrlTesting,
CurrencyLocaleContextTesting2<C>,
MediaTypeDetectorTesting2<C>,
SpreadsheetMetadataContextTesting<C> {

// setCurrency......................................................................................................
Expand Down Expand Up @@ -76,6 +78,13 @@ default void spreadsheetEngineAndCheck(final C context,
);
}

// MediaTypeDetector................................................................................................

@Override
default C createMediaTypeDetector() {
return this.createContext();
}

// class............................................................................................................

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyLocaleContext;
import walkingkooka.net.header.MediaTypeDetector;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand All @@ -39,7 +40,8 @@ public final class SpreadsheetContexts implements PublicStaticHelper {
/**
* {@see SpreadsheetContextSharedFixedSpreadsheetId}
*/
public static SpreadsheetContext fixedSpreadsheetId(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
public static SpreadsheetContext fixedSpreadsheetId(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetStoreRepository storeRepository,
final Function<SpreadsheetEngineContext, Router<HttpRequestAttribute<?>, HttpHandler>> httpRouterFactory,
Expand All @@ -48,6 +50,7 @@ public static SpreadsheetContext fixedSpreadsheetId(final BinaryNumberConverterF
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
return SpreadsheetContextSharedFixedSpreadsheetId.with(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
storeRepository,
Expand All @@ -69,7 +72,8 @@ public static SpreadsheetContext fake() {
/**
* {@see SpreadsheetContextSharedMutableSpreadsheetId}
*/
public static SpreadsheetContext mutableSpreadsheetId(final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
public static SpreadsheetContext mutableSpreadsheetId(final MediaTypeDetector mediaTypeDetector,
final BinaryNumberConverterFunction<SpreadsheetConverterContext> multiplier,
final SpreadsheetEngine spreadsheetEngine,
final SpreadsheetContextSupplier spreadsheetContextSupplier,
final SpreadsheetMetadataContext spreadsheetMetadataContext,
Expand All @@ -78,6 +82,7 @@ public static SpreadsheetContext mutableSpreadsheetId(final BinaryNumberConverte
final SpreadsheetProvider spreadsheetProvider,
final ProviderContext providerContext) {
return SpreadsheetContextSharedMutableSpreadsheetId.with(
mediaTypeDetector,
multiplier,
spreadsheetEngine,
spreadsheetContextSupplier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package walkingkooka.spreadsheet.engine;

import walkingkooka.Binary;
import walkingkooka.Either;
import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.currency.CurrencyCode;
Expand All @@ -29,6 +30,7 @@
import walkingkooka.math.DecimalNumberSymbols;
import walkingkooka.net.AbsoluteUrl;
import walkingkooka.net.email.EmailAddress;
import walkingkooka.net.header.MediaType;
import walkingkooka.net.http.server.HttpHandler;
import walkingkooka.net.http.server.HttpRequestAttribute;
import walkingkooka.plugin.ProviderContext;
Expand Down Expand Up @@ -68,6 +70,12 @@

public class FakeSpreadsheetEngineContext extends FakeSpreadsheetProvider implements SpreadsheetEngineContext, Fake {

@Override
public MediaType detect(final String filename,
final Binary content) {
throw new UnsupportedOperationException();
}

@Override
public Optional<StoragePath> currentWorkingDirectory() {
throw new UnsupportedOperationException();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@

package walkingkooka.spreadsheet.engine;

import walkingkooka.Binary;
import walkingkooka.ToStringBuilder;
import walkingkooka.convert.BinaryNumberConverterFunction;
import walkingkooka.convert.ConverterLike;
import walkingkooka.currency.CurrencyContext;
import walkingkooka.environment.EnvironmentContext;
import walkingkooka.locale.LocaleContext;
import walkingkooka.net.header.MediaType;
import walkingkooka.plugin.ProviderContext;
import walkingkooka.spreadsheet.SpreadsheetContext;
import walkingkooka.spreadsheet.convert.SpreadsheetConverterContext;
Expand Down Expand Up @@ -427,6 +429,17 @@ public LocaleContext localeContext() {
return this.spreadsheetContext;
}

// MediaTypeDetector................................................................................................

@Override
public MediaType detect(final String filename,
final Binary content) {
return this.spreadsheetContext.detect(
filename,
content
);
}

// HasProviderContext...............................................................................................

@Override
Expand Down
Loading
Loading